字符串-14.最长公共前缀-力扣(LeetCode)
一、题目解析
1、不存在公共前缀返回""
2、字符串仅由小写字母组成
二、算法原理
解法1:模拟,统一比较
解法2:模拟,两两比较
需要注意只有一个元素且只有一个字符,直接返回strs[0]
思路很简单,但难在将思路转化成代码,可以自己动手尝试一下
链接:14. 最长公共前缀 - 力扣(LeetCode)
三、代码示例
解法1:统一比较
//解法1:统一比较string longestCommonPrefix(vector<string>& strs) {int n = strs.size();int m = strs[0].size();if(m == 1 && n == 1) return strs[0];string ret = "";char c;for(int i = 0;i<m;i++){for(int j = 0;j<=n-2;j++){c = strs[j][i];if(strs[j+1][i] != c){return ret;}}ret += c;}return ret;}
解法2:两两比较
//解法2:两两比较string longestCommonPrefix(vector<string>& strs){int n = strs.size()-1;int m = strs[0].size();if(n==0&&m==1) return strs[0];string ret = strs[0];for(int i = 1;i<=n;i++){int j = 0;while(j<strs[0].size()){if(ret[j] == strs[i][j])j++;else{ret = strs[i].substr(0,j);break;}}}return ret;}