字符串
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
class Solution {
public:
string replaceSpace(string s) {
int count = 0;
for(char c:s) {
if(c==' '){
count++;
}
}
int len = s.size();
s.resize(len+2*count);
for(int i=len,j=s.size();i<j;i--,j--) {
if(s[i]!=' ') {
s[j] = s[i];
}else {
s[j-2] = '%';
s[j-1] = '2';
s[j] = '0';
j-=2;
}
}
return s;
}
};
这种解法没有多使用一个数组,而是在原来的数组里面进行操作。
注意C++里面的字符串的各种操作,注意字符串长度需要对应的改变。
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。
class Solution {
public:
string reverseLeftWords(string s, int n) {
string s1,s2;
s1 = s.substr(0,n);
s2=s.substr(n);
return s2.append(s1);
}
};
这个相对简单,就是使用了String内置的截取字符串的方法。