博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LintCode 819. 单词排序
阅读量:5153 次
发布时间:2019-06-13

本文共 1775 字,大约阅读时间需要 5 分钟。

给一个新的字母表,如{c,b,a,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z},根据新的字母表排序字符串数组。

 注意事项
  • 输入的单词长度不超过100
  • 输入的单词总数不超过10000
  • 可以认为,输入的新字母表即一个长度为26的字符串
  • 保证题目只会出现小写字母

样例

给出 Alphabet = {c,b,a,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}, String array = {cab,cba,abc}, 返回 {cba,cab,abc}

解释:根据新的字典序,排序输出{cba,cab,abc}。

给出 Alphabet = {z,b,a,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,c}, String array = {bca,czb,za,zba,ade}, 返回 {zba,za,bca,ade,czb}

解释:根据新的字典序,排序输出{zba,za,bca,ade,czb}。

 

思路:相当于对于字符串的大小重定义,很快能想到的一个办法是写一个比较函数然后扔给std::sort去排序,但这里的比较函数需要包含比较字典的信息才能进行,好像只能自己写个快排才能完成,而且类内写比较函数要注意this指针,只能用static函数,这个需要注意一下。比较字典我这里用了一个最简单的数组,这么小规模的数据如果用hash结构unordered_map好像有点大材小用,最后就是string_comp这个函数了

1 class Solution { 2 public: 3     /** 4      * @param alphabet: the new alphabet 5      * @param words: the original string array 6      * @return: the string array after sorting 7      */ 8     vector
wordSort(string &alphabet, vector
&words) { 9 // Write your code here10 for(int i = 0; i<26 ;++i){
//构建字典,存在private字段里11 dict[alphabet[i]-'a'] = i;12 }13 vector
res = words;14 QuickSort_vector_index(res,0,words.size()-1);15 return res;16 }17 18 bool string_comp(string s1,string s2){
//比较函数,注意只有当s1
size1) return true;27 return false;28 }29 30 void QuickSort_vector_index(vector
&words,int start ,int end){
//改造过的快排。。。有点意思的31 if(start>=end) return;32 string temp = words[start];33 int L = start; //L,R左右哨兵34 int R = end;35 while(L

 

转载于:https://www.cnblogs.com/J1ac/p/8810019.html

你可能感兴趣的文章
Ural 1297 Palindrome(后缀数组+最长回文子串)
查看>>
了解java虚拟机—非堆相关参数设置(4)
查看>>
mysql find_in_set
查看>>
数组的去重-----------------------来自大牛的讲解
查看>>
NSAttributedString
查看>>
Java复习之网络编程
查看>>
C#与vb6 com组件的互相调用方法
查看>>
对象-关系映射ORM(Object Relational Mapping)(转)
查看>>
ISP DSP的不同
查看>>
深入Linux grep指令的详解(实用型)
查看>>
嵌入式根文件系统的移植和制作详解
查看>>
单片机定时器中断原理
查看>>
Ignite 配置更新Oracle JDBC Drive
查看>>
partproble在RHEL 6下无法更新分区信息
查看>>
c网购物车流程图
查看>>
xapth(笔记)
查看>>
HTTP 错误 403.6 - Forbidden 解决方案
查看>>
一个小例子介绍Obj-C的函数命名方式
查看>>
关于Bootstrap的理解
查看>>
十种基本排序算法
查看>>