题目
- 给你一个下标从 0 开始的字符串 word 和一个字符 ch 。
- 找出 ch 第一次出现的下标 i ,反转 word 中从下标 0 开始、直到下标 i 结束(含下标 i )的那段字符。
- 如果 word 中不存在字符 ch ,则无需进行任何操作。
思路
找下标,if s[i] == ch; int index = i;
while(index >= 0){
res = res + s[index] ;
index–;
}
for(i = index;i<s.size();i++)
{
res+ = s[i];
}
class Solution {
public:
string reversePrefix(string word, char ch) {
int len = word.size();
int index = -1;//第一次出现下标
string res = "";
//下面这个for循环找下标
for(int i = 0;i < len;i++){
if(word[i] == ch){
index = i;
break;
}
}
//如果word 中不存在字符 ch ,则无需进行任何操作。
if(index == -1){
return word;
}
int start = index;
//反转操作
while(index >= 0){
res = res + word[index];
index--;
}
//把最后的不需要反转的部分加上
for(int i = start+1;i<len;i++){
res =res + word[i];
}
return res;
}
};
收获:
- 空字符串 “”,双引号,不是单引号’’
- 变量随时要检测,中途改变的情况要及时保存下来