亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

小小碼民刷算法——反轉(zhuǎn)字符串

Zhuxy / 3049人閱讀

摘要:模板經(jīng)過一個下午的刷題時光,我發(fā)現(xiàn)力扣中字符串有關(guān)的題,可分為有空格和無空格的倆種類型,模板一記,直接開掛,秋名山的賽道,跑的飛起如果有前后置空格,那么必須判斷臨時字符串非空才能輸出,否則會輸出空串對應(yīng)的代碼如下

模板

經(jīng)過一個下午的刷題時光,我發(fā)現(xiàn)力扣中字符串有關(guān)的題,可分為有空格和無空格的倆種類型,模板一記,直接開掛,秋名山的賽道,跑的飛起?。?!

1、如果有前后置空格,那么必須判斷臨時字符串非空才能輸出,否則會輸出空串
`對應(yīng)的代碼如下:

void test01(){	s += " "; //這里在最后一個字符位置加上空格,這樣最后一個字符串就不會遺漏	string temp = "";  //臨時字符串	vector<string> res; //存放字符串的數(shù)組	for (char ch : s)  //遍歷字符句子	{		if (ch == " ") //遇到空格		{			if (!temp.empty()) //臨時字符串非空			{				res.push_back(temp);				temp.clear();  //清空臨時字符串			}		}		else			temp += ch;	}}

2、沒有前后置的空格不需要判斷空串

void text02(){	s += " ";	string temp = "";	vector<string> res;	for (char ch : s)	{		if (ch == " ")		{			res.push_back(temp);			temp.clear();		}		else			temp += ch;	}}

例題

反轉(zhuǎn)字符串
直接用雙指針來解

int n = s.size();for (int left = 0, right = n - 1; left < right; ++left, --right) {    swap(s[left], s[right]);//交換函數(shù)}

反轉(zhuǎn)字符串的前綴
需要判斷是否為空

class Solution {public:    string reversePrefix(string word, char ch) {    for(int i = 0; word[i] != "/0"; ++i) {        if(word[i] == ch) {            reverse(begin(word), begin(word) + i + 1);//反轉(zhuǎn)字符串            break;        }    }    return word;}};

反轉(zhuǎn)單詞

class Solution {public:    string reverseWords(string s) {        string ans;        //i,j用于確定跳過首尾空格的下標(biāo)范圍        int i=0,j=s.size()-1;        //跳過s的首部空格        while(i<=j&&s[i]==" ") i++;        //跳過s的尾部空格        while(i<=j&&s[j]==" ") j--;        //k,w為用于確定每個單詞范圍的雙指針,從非空格尾部開始往前掃描,i為前邊界,j為后邊界        int k=j,w=j;        //當(dāng)輸入全為空格時,跳過首尾空格后i>j        while(i<=j&&k>=i){            //k往前掃描直到遇到空格停下,或者超出i前邊界停下            while(k>=i&&s[k]!=" ") k--;            //k+1到w為一個單詞的范圍,將每個字符按序加入string ans即可            for(int idx=k+1;idx<=w;idx++) ans+=s[idx];            //沒超出前邊界i時,k停下遇到的肯定是空格,可能是一個或多個,跳過            if(k>=i&&s[k]==" "){                while(k>=i&&s[k]==" ") k--;                //跳過一個或多個空格后,ans加一個必要的空格                ans+=" ";            }            //w跳到k位置繼續(xù)掃描下一個單詞范圍            w=k;        }        return ans;    }};

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/123492.html

相關(guān)文章

  • Python0基礎(chǔ)(上)——期末不掛科

    摘要:易于維護(hù)的成功在于它的源代碼是相當(dāng)容易維護(hù)的??梢浦不谄溟_放源代碼的特性,已經(jīng)被移植也就是使其工作到許多平臺。集合集合是由一個或數(shù)個形態(tài)各異的大小整體組成的,構(gòu)成集合的事物或?qū)ο蠓Q作元素或是成員?;竟δ苁沁M(jìn)行成員關(guān)系測試和刪除重復(fù)元素。 ...

    Ajian 評論0 收藏0
  • July算法習(xí)題 - 符串1

    摘要:反轉(zhuǎn)上述步驟得到的結(jié)果字符串,即反轉(zhuǎn)字符串的兩部分和給予反轉(zhuǎn),得到,形式化表示為,這就實現(xiàn)了整個反轉(zhuǎn)。例如,原字符串為,,輸出結(jié)果為。同單詞翻轉(zhuǎn)輸入一個英文句子,翻轉(zhuǎn)句子中單詞的順序,但單詞內(nèi)字符的順序不變,句子中單詞以空格符隔開。 July 程序員編程藝術(shù):面試和算法心得題目及習(xí)題 旋轉(zhuǎn)字符串 題目描述 給定一個字符串,要求把字符串前面的若干個字符移動到字符串的尾部,如...

    Betta 評論0 收藏0
  • 【LeetCode】符串初級算法-反轉(zhuǎn)符串

    摘要:題目描述反轉(zhuǎn)字符串編寫一個函數(shù),其作用是將輸入的字符串反轉(zhuǎn)過來。示例輸入輸出示例輸入輸出思路先用轉(zhuǎn)成數(shù)組,再用反轉(zhuǎn),最后用組合成字符串。 題目描述 反轉(zhuǎn)字符串編寫一個函數(shù),其作用是將輸入的字符串反轉(zhuǎn)過來。 示例 1: 輸入: hello 輸出: olleh 示例 2: 輸入: A man, a plan, a canal: Panama 輸出: amanaP :lanac a ,n...

    趙連江 評論0 收藏0
  • JavaScript中的算法(附10道面試常見算法題解決方法和思路)

    摘要:中的算法附道面試常見算法題解決方法和思路關(guān)注每日一道面試題詳解面試過程通常從最初的電話面試開始,然后是現(xiàn)場面試,檢查編程技能和文化契合度。值得記住的數(shù)組方法有和。一個好的解決方案是使用內(nèi)置的方法。 JavaScript中的算法(附10道面試常見算法題解決方法和思路) 關(guān)注github每日一道面試題詳解 Introduction 面試過程通常從最初的電話面試開始,然后是現(xiàn)場面試,檢查編程...

    Cruise_Chan 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<