思考: 1.vector<sting>的排序是依照字典排序 比較前幾位字元 如果都相同是比較長度 2.只需要比較排序後的第一個字串和最後一個字串就好 3.如果有不相同的要直接break迴圈,不然會一直掃到有相同的 ```C++= class Solution { public: string longestCommonPrefix(vector<string>& strs) { sort(strs.begin(), strs.end()); //字串的排序是依照字典排序法,先比較每個字元相同 如果都一樣是依照長度進行排序 //直接比較第一個和最後一個字串就好 沒必要比較全部 string n = strs[0]; // 拿到string的最後一個字串 string m = strs.back(); string ans = ""; for (int i = 0; i < n.size(); i++) { if (n[i] == m[i]) { ans += n[i]; }else{ //如果不直接break會比較到以後的字元相同又push進ans; break; } } return ans; } }; ``` ```c++= class Solution { private: string ans = ""; public: string longestCommonPrefix(vector<string>& strs) { sort(strs.begin(), strs.end()); string n = strs[0]; string m = strs[strs.size()-1]; for(int i = 0; i < n.size(); i++){ if(n[i] == m[i]){ ans = ans + n[i]; }else{ break; } } return ans; } }; ``` ```= /** * @param {string[]} strs * @return {string} */ var longestCommonPrefix = function(strs) { for (let i = 0; i < strs[0].length; i++) { if (!strs.every((string) => { return string[i] === strs[0][i]; })) { return strs[0].slice(0, i); } } console.log(strs[0]); return strs[0]; }; ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up