[leetcode 14] Longest Common Prefix
2015-11-26 23:29
337 查看
Quesiton:
Write a function to find the longest common prefix string amongst an array of strings.
分析:
题目要求写一个函数,返回所有字符串的最常公共前缀。
如果只有一个字符串,返回本身即可;
若果字符串数量大于等于2,依次比较即可。先比较前两个,前缀的长度肯定小于等于这两个字符串的最小串长度,根据这两个字符串求出这两个字符串的公共前缀prefix;
然后求得prefix跟第三个字符串公共前缀,只比较第三个字符串的前prefix.size().个字符即可求得公共前缀,依次类推。
代码:
Write a function to find the longest common prefix string amongst an array of strings.
分析:
题目要求写一个函数,返回所有字符串的最常公共前缀。
如果只有一个字符串,返回本身即可;
若果字符串数量大于等于2,依次比较即可。先比较前两个,前缀的长度肯定小于等于这两个字符串的最小串长度,根据这两个字符串求出这两个字符串的公共前缀prefix;
然后求得prefix跟第三个字符串公共前缀,只比较第三个字符串的前prefix.size().个字符即可求得公共前缀,依次类推。
代码:
<span style="font-size:14px;">class Solution { public: string longestCommonPrefix(vector<string>& strs) { string result; string prefix; if(strs.empty()) return result; if(strs.size() == 1) return strs[0]; for(int i = 0; i < min(strs[0].size(),strs[1].size()); ++i){ if(strs[0][i] == strs[1][i]) prefix += strs[0][i]; else break; } for(int i = 2; i < strs.size(); ++i){ for(int j = 0; j < prefix.size(); ++j){ if(prefix[j] != strs[i][j]){ prefix.erase(j,prefix.size()-j); break; } } } return prefix; } };</span>
相关文章推荐
- Dubbo视频教程《基于Dubbo的分布式系统架构视频教程》--课程列表
- 使用python批量给设备安装apk
- FP-Tree -关联规则挖掘算法(转载)
- 背包问题
- Timer01
- String、Array常用方法整理
- 【转】JSP中文乱码问题终极解决方案
- 搜索引擎优化指南教程
- 一道考察函数参数传递、值传递、指针传递(地址传递)、引用传递
- 拷贝文本文件
- linux dd命令详解
- Saltstack的返回(return)
- javaSE(08)(字符串三姐妹)
- PHP 代码质量检测工具的安装与使用
- lvs的realserver健康检查脚本
- 6个值得推荐的Android开源框架简介
- 黑马程序员——Java笔记——基本数据类型包装类注意
- objective-c 关键字和概念
- 拓扑排序简单应用poj2367
- programming-challenges Adventures in Moving - Part IV (111108) 题解