作者:卜土杠烟2502932477 | 来源:互联网 | 2023-10-11 04:17
思路优化,本来是把第一个字符串的长度作为初始预估prefix值。后来看到别人写的,还是觉得提前循环一遍,找到最短的字符串的长度作为prefix的长度预估值。
双层循环:
外层循环,用下图横着做,开始都是str[j][0]---str[j][1]---str[j][minlen-1]
内层循环,用下图竖着做,大家都是第一个字符,看看一样吗,不一样则break。
如果跳出的循环式i==len,就是说是自然遍历完全后退出,因此在结果字符串上增加当前指向字符;
如果跳出循环的i!=len,就是说是break出来的。则出现不一致的前缀了,则放弃当前字符。跳出外层循环。
class Solution {
public:string longestCommonPrefix(vector& strs) {//strs&#61;{"dog","racecar","car"};string ans;if(strs.empty()) return ans;int len&#61;strs.size();if(len&#61;&#61;1) return strs[0];int i,j;char tmp;j&#61;0;int minlen&#61;strs[0].size();for(i&#61;1;i<&#61;len-1;i&#43;&#43;){if(strs[i].size()};