力扣14:最长公共前缀
力扣14:最长公共前缀
- 题目
- 思路
- 代码
题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
思路
思路也比较简单,我们先以字符串数组里第一个字符串当作最长公共前缀res,然后从第二个字符串str开始遍历,在遍历中定义两个整型m,n代表res里的位置和str里的位置,之后同时移动m和n判断两个位置的字符是否相同如果相同就插入到临时字符串中,如果有不同的退出循环。在结束每一轮循环后此时临时字符串就是最长公共前缀,所以赋值给res再clear临时字符串。
代码
class Solution {
public:string longestCommonPrefix(vector<string>& strs) {cout << strs.back() << endl;string res = strs[0];string str;for (int i = 1; i < strs.size(); i++) {int m = 0;int n = 0;while (m < res.size() && n < strs[i].size()) {if (res[m] == strs[i][n]) {str.push_back(res[m]);} else {break;}m++;n++;}res = str;str.clear();}return res;}
};