Description
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string “”.
Example 1:
Input: ["flower","flow","flight"]
Output: "fl"
Example 2:
Input: ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.
1. Bool + For | 入门玩家
一直在跟着testcase改代码(testcase-oriented低级玩家在此),用boolean isDif来确认连续的单词是否有差异,同时要确保选用长度最短的作common prefix,而不是最后出现的(可能不是最短)。
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if (strs.size() == 0) {
return "";
}
string common = strs[0];
bool isDif = false;
for (int i = 0; i < strs.size(); i++) {
if (strs[i] == "") {
return "";
}
for (int j = 0; j < common.length(); j++) {
if (j < strs[i].length()) {
if (common[j] != strs[i][j]) {
//jth elements differ && j is within range
common = common.substr(0,j);
isDif = true;
}
}
}
if (!isDif && strs[i].length() < common.length()) {
//situation when ["aa","a"] should return "a"
common = strs[i];
}
}
return common;
}
};