国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

小小碼民刷算法——反轉字符串

Zhuxy / 2989人閱讀

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

模板

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

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

void test01(){	s += " "; //這里在最后一個字符位置加上空格,這樣最后一個字符串就不會遺漏	string temp = "";  //臨時字符串	vector<string> res; //存放字符串的數組	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;	}}

例題

反轉字符串
直接用雙指針來解

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

反轉字符串的前綴
需要判斷是否為空

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);//反轉字符串            break;        }    }    return word;}};

反轉單詞

class Solution {public:    string reverseWords(string s) {        string ans;        //i,j用于確定跳過首尾空格的下標范圍        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;        //當輸入全為空格時,跳過首尾空格后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位置繼續掃描下一個單詞范圍            w=k;        }        return ans;    }};

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/123492.html

相關文章

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

    摘要:易于維護的成功在于它的源代碼是相當容易維護的??梢浦不谄溟_放源代碼的特性,已經被移植也就是使其工作到許多平臺。集合集合是由一個或數個形態各異的大小整體組成的,構成集合的事物或對象稱作元素或是成員。基本功能是進行成員關系測試和刪除重復元素。 ...

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

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

    Betta 評論0 收藏0
  • 【LeetCode】符串初級算法-反轉符串

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

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

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

    Cruise_Chan 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<