151. 反轉字串中的單詞
題目連結:https://leetcode.cn/problems/reverse-words-in-a-string/
題目難度:中等
文章講解:https://programmercarl.com/0151.翻轉字串裡的單詞.html
影片講解: https://www.bilibili.com/video/BV1uT41177fX
題目狀態:修改後過
個人思路:
討了個巧,使用istringstream
分割字串,在將分割出來的單詞依次存放到一個vector<string>
裡面,最後翻轉vector<string>
並透過ostringstream
將結果輸出。
實現程式碼:
class Solution {
public:
string reverseWords(string s) {
istringstream iss(s);
vector<string> words;
string word;
while(iss >> word) {
words.push_back(word);
}
reverse(words.begin(), words.end());
ostringstream oss;
for(int i = 0; i < words.size(); ++i) {
if(i != 0) oss << " ";
oss << words[i];
}
return oss.str();
}
};
55. 右旋字串(卡碼網)
題目連結:https://kamacoder.com/problempage.php?pid=1065
文章講解:https://programmercarl.com/kama55.右旋字串.html
題目狀態:過
個人思路:
建立一個新string
型別的res
用來存放結果,首先先將字串後n
個元素加入res
,再將剩下的元素加入到res
。
實現程式碼:
#include <iostream>
#include <string>
using namespace std;
using std::string;
int main() {
int n;
string s;
cin >> n >> s;
string res;
int sLen = s.size();
for(int i = sLen - n; i < sLen; ++i) {
res += s[i];
}
for(int i = 0; i < sLen - n; ++i) {
res += s[i];
}
cout << res << endl;
return 0;
}