一、541.题目
541. 反转字符串 II - 力扣(LeetCode)
二、代码
class Solution {
public:
void reverse_begin_end(string& s, int begin, int end)
{
while (begin < end)
{
swap(s[begin], s[end]);
begin++;
end--;
}
}
string reverseStr(string s, int k)
{
int i=0;
while(i<s.size())
{
if(k<s.size()-i)//剩余字符数大于k个(i是下一组数据起始下标)
{
reverse_begin_end(s,i,i+k-1);
}
else
{
reverse_begin_end(s,i,s.size()-1);
}
i=i+2*k;
}
return s;
}
};
三、557.反转字符串中的单词 3
557. 反转字符串中的单词 III - 力扣(LeetCode)
四、代码
class Solution {
public:
void reverse(string &s,int begin,int end)
{
while(begin<end)
{
swap(s[begin],s[end]);
begin++;
end--;
}
}
string reverseWords(string s) {
size_t start =0;
size_t pos=0;
while(s[pos]!='\0')
{
if(s[pos]==' ')
{
reverse(s,start,pos-1);
start = pos+1;
}
pos++;
}
reverse(s,start,pos-1);
return s;
}
};