2020-06-19 LC-14最長(zhǎng)公共前綴

編寫(xiě)一個(gè)函數(shù)來(lái)查找字符串?dāng)?shù)組中的最長(zhǎng)公共前綴。如果不存在公共前綴,返回空字符串 ""。

輸入: ["flower","flow","flight"]
輸出: "fl"
這次大概是我第一次,比較順利的coding出來(lái)的題目。
但是被string的一個(gè)陌生語(yǔ)法坑了一個(gè)小時(shí)
先上代碼

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        int n = strs.size();
        string maxL;
        char s = '\0';
        if(n == 0) return "";
        if(n == 1) return strs[0];
        for(auto c : strs[0])
        {
            for(int i = 1; i < n; i++)
            {
                if(strs[i].empty()) {s='\0'; break;}
                s = strs[i][0];
                if(s != c) {s='\0'; break;}
                else strs[i].erase(0,1);

            }
            if(s != '\0' && c == s)
            {
            maxL += s;
            }
            else
                break;
        }
        return maxL;
    }
};

主要是string.erase()函數(shù)的用法

#include <iostream>
#include <string>

int main ()
{
  std::string str ("This is an example sentence.");
  std::cout << str << '\n';
                                           // "This is an example sentence."
  str.erase (10,8);                        //            ^^^^^^^^
  std::cout << str << '\n';
                                           // "This is an sentence."
  str.erase (str.begin()+9);               //           ^
  std::cout << str << '\n';
                                           // "This is a sentence."
  str.erase (str.begin()+5, str.end()-9);  //       ^^^^^
  std::cout << str << '\n';
                                           // "This sentence."
  return 0;
}

如果()中間放兩個(gè)參數(shù),就是刪除中間一段;如果只放一個(gè),就是刪除該數(shù)字往后的所有。
我的問(wèn)題是沒(méi)注意這個(gè)語(yǔ)法的使用規(guī)則,想刪除第一個(gè)字符,結(jié)果寫(xiě)成str.erase(0),刪除了所有

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容