151.翻转字符串里的单词
代码
string reverseWords(string s) {
int left = s.size()-1;
int right = s.size()-1;
string result;
result.reserve(s.size());
while(left>=0)
{
while(left>=0&&s[left]==' ')
{
left--;
if(left==-1)
{
result.pop_back();
return result;
}
}
cout<<" left: "<< left<<endl;
right = left;
cout<<" left: "<< left<<endl;
while(left>=0&&s[left]!=' ')
{
left--;
}
cout<<" left: "<< left<<endl;
for(int i=left+1;i<=right;i++)
{
result.push_back(s[i]);
}
result += ' ';
cout<<"result="<< result<<endl;
}
result.pop_back();
return result;
}
随想录代码
#include<iostream>
#include<string>
using namespace std;
int main()
{
int k;
string s;
cin>>k;
cin>>s;
string result;
result.reserve(s.size());
int left = s.size()-k;
int kk = k;
while(kk>0)
{
result.push_back(s[left]);
kk--;
left++;
}
for(int i=0;i<(s.size()-k);i++)
{
result.push_back(s[i]);
}
cout<<result<<endl;
return 0;
}
~~~\
## 代码随想录
* 觉得这想法很妙
~~~c
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int n;
string s;
cin >> n;
cin >> s;
int len = s.size();
reverse(s.begin(), s.end());
reverse(s.begin(), s.begin() + n);
reverse(s.begin() + n, s.end());
cout << s << endl;
}
卡码网:55.右旋转字符串
代码
#include<iostream>
#include<string>
using namespace std;
int main()
{
int k;
string s;
cin>>k;
cin>>s;
string result;
result.reserve(s.size());
int left = s.size()-k;
int kk = k;
while(kk>0)
{
result.push_back(s[left]);
kk--;
left++;
}
for(int i=0;i<(s.size()-k);i++)
{
result.push_back(s[i]);
}
cout<<result<<endl;
return 0;
}
28. 实现 strStr()
代码
459.重复的子字符串
代码
字符串总结
双指针回顾