Longest Common Prefix(C++最长公共前缀)

解题思路:

(1)先求出最短的字符串长度

(2)再分别判断每个字符串对应位置是否相等

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
    	if (strs.size()==0) return "";
    	
        int length=INT_MAX,j=0,tag=-1;
        for (auto w:strs) {
        	if (length>w.length()) length = w.length();
		}
		
		for (int i=0;i<length;i++) {
			j=0;
			while(j<strs.size()-1) {
				if(strs[j][i]==strs[j+1][i]) {
					j++;
				} else {
					tag=i;
					break;
				}
			}
			if (tag!=-1) {
				if(tag==0) return "";
				else break;
			}
		}
		if (tag==-1) tag=length;
		return strs[0].substr(0,tag);
    }
};
发布了264 篇原创文章 · 获赞 272 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/coolsunxu/article/details/105520918