反轉字符串中的單詞


給定一個字符串,你需要反轉字符串中每個單詞的字符順序,同時仍保留空格和單詞的初始順序。

示例 1:

輸入: "Let's take LeetCode contest"
輸出: "s'teL ekat edoCteeL tsetnoc" 
注意:在字符串中,每個單詞由單個空格分隔,並且字符串中不會有任何額外的空格。

class Solution {
public:
  
    string reverseWords(string s) {
        string result;
        int first = 0;
        int second = 0;
        for(int i = 0; i < s.size(); i++){
            if(s[i] == ' '){
                second = i;
                string temp = s.substr(first,second-first);
                temp = singleWord(temp);
                result += temp;
                result += ' ';
                first = i+1;
            }
            if(i == s.size()-1){
                second = s.size();
                string temp = s.substr(first, second-first);
                temp = singleWord(temp);
                result += temp;
              
            }
           
        }
         return result;
    }
    //反轉單個單詞
    string singleWord(string& s){
        for(int i =0; i < s.size()/2; i++)
        {
            char temp = s[s.size()-1-i];
            s[s.size()-1-i] = s[i];
            s[i] = temp;
        }
        return s;
    }
     
};

看到有的人使用了字符串的reverse函數

class Solution {
public:
    string reverseWords(string s) {
        s = s + ' ';
        auto begin = s.begin(), end = s.begin();
        while(end != s.end()) {
            if(*end == ' ') {
                reverse(begin, end);
                begin = end+1;
            }
            ++end;
        }
        s.erase(end-1);
        return s;
    }
};

//作者:pu-shang-qing-feng

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM