タイトル説明(簡単な難易度)
アルゴリズム
(垂直比較)
標準として第1の文字列(1)、その文字の各々を横断する
、(2)現在の位置が同じであるかどうかを他の文字列を比較しながら、横断
現在位置が文字列または位置の範囲を超えた場合(3)が発生文字の最初の文字の位置と一致していない文字、最長共通接頭辞が返されます(SUBSTRとリターン)
時間複雑
- アップ比較、もちろん、それは通常の状況下で必要とされないN文字列形式、最長文字列の長さM、N Mの同一の列の最悪の場合の長さであり、すべての文字列比較、 それは上の文字
宇宙複雑
C ++コード
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
// 垂直比较 每个字符串的第i位上的字符
// leetcode
// leets
// leetabs
int n = strs.size();
if (n == 0) return "";
for (int i = 0; i < strs[0].size(); i ++) {
char c = strs[0][i];
for (int j = 1; j < n; j ++) {
if (i >= strs[j].size() || c != strs[j][i]) {
return strs[j].substr(0, i);
}
}
}
return strs[0]; // 如果只有一个字符串,则返回第一个字符串
}
};
// Saturday, March 7, 2020 15:26:35
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
// up and down mode
// 1. Traversal each character in first character
// 2. Just if other character in same index is equal
// flower
// flow
// flight
int n = strs.size();
if (n == 0) return "";
for (int i = 0; i < strs[0].size(); i ++) {
char c = strs[0][i];
for (int j = 1; j < n; j ++) {
if (strs[j][i] != c || i >= strs[j].size()) {
return strs[0].substr(0, i);
}
}
}
return strs[0];
}
};
最後に書かれたブログは思考の知識をまとめたコンピュータサイエンスの分野を中心に、レビューは、私の目標を理解することは容易である各ブログを書くために、:技術と知識を共有することは喜びである、と私はみんなを歓迎します一緒に学習の交換をして、そこにコメントエリアには疑問もありませんが、またあなた(^∀^●)との深い交流を楽しみにすることができます