您的位置:首页 > 其它

LeetCode: Longest Common Prefix

2013-04-02 15:56 302 查看
string.erase没掌握好,悲了个剧,2次过

class Solution {
public:
string longestCommonPrefix(vector<string> &strs) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
string pre = "";
if (!strs.size()) return pre;
for (int i = 0; i < strs[0].size(); i++) {
pre += strs[0][i];
int j = 1;
for (; j < strs.size(); j++) {
if (pre != strs[j].substr(0, i+1)) break;
}
if (j != strs.size()) {
pre.erase(pre.size()-1, 1);
return pre;
}
}
return pre;
}
};


后来写了个更加精简的代码

class Solution {
public:
string longestCommonPrefix(vector<string> &strs) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
sort(strs.begin(), strs.end());
string ret;
if (!strs.size() || !strs[0].size()) return ret;
int cur = 0;
while (cur < strs[0].size() && strs[0][cur] == strs[strs.size()-1][cur]) {
ret += strs[0][cur];
cur++;
}
return ret;
}
};


C#

public class Solution {
public string LongestCommonPrefix(string[] strs) {
Array.Sort(strs);
string ans = "";
if (strs.Length == 0 || strs[0].Length == 0) return ans;
int cur = 0;
while (cur < strs[0].Length && strs[0][cur] == strs[strs.Length-1][cur]) {
ans += strs[0][cur];
cur++;
}
return ans;
}
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: