leetcode Longest Common Prefix不同字符串的公共前缀
2015-08-09 17:51
621 查看
思路:
当任意2个字符串的最长公共前缀,其长度肯定不会超过最短的字符串的长度,设最短的字符串长度为n,那么只要比较这2个字符串的前n个字符即可。
如此得出这2个字符串的最长公共前缀prefix后,再拿prefix作为新的字符串和数组中的下一个字符串比较,方法同上。
需要注意的是,如果数组中的某个字符串长度为0,或者求得的当前最长公共前缀的长度为0,就直接返回空字串。
当任意2个字符串的最长公共前缀,其长度肯定不会超过最短的字符串的长度,设最短的字符串长度为n,那么只要比较这2个字符串的前n个字符即可。
如此得出这2个字符串的最长公共前缀prefix后,再拿prefix作为新的字符串和数组中的下一个字符串比较,方法同上。
需要注意的是,如果数组中的某个字符串长度为0,或者求得的当前最长公共前缀的长度为0,就直接返回空字串。
class Solution { public: int get1min(int x,int y){ if(x>y)return y; return x;} string longestCommonPrefix(vector<string>& strs) { if(strs.empty())return ""; string ss=strs[0]; int i,j; for(i=1;i<strs.size();i++) {if(ss.size()==0||strs[i].size()==0)return ""; int l=get1min(ss.size(),strs[i].size());//两个字符串比较 for(j=0;j<l;j++) if(ss[j]!=strs[i][j])break; ss=ss.substr(0,j);} return ss;} };
相关文章推荐
- 关于图片克隆转存的问题.
- UVA 714 Copying Books 抄书 (二分)
- UVA 10954 Add All 全部相加 (Huffman编码)
- UVA 12673 Erratic Expansion 奇怪的气球膨胀 (递推)
- Java基础之修饰符与关键字
- 设置Discuz门户为首页
- BestCoder Round #49 ($)
- 如何准备SCI论文
- 100. Same Tree
- maven的常用命令
- Ubuntu下的nfs安装和配置
- Ubuntu下的nfs安装和配置
- js闭包总结
- [人月神话]读书笔记4--项目中的交流沟通&&项目估算
- 插入排序(C++ 版)
- js删除一个div的方法
- Java获取外网ip地址
- maven for scala
- 语录8月北京
- LA3942-Remember the Word(Trie)