携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第8天,点击查看活动详情
题目描述
给你一个下标从 0 开始的字符串 word 和一个字符 ch 。找出 ch 第一次出现的下标 i ,反转 word 中从下标 0 开始、直到下标 i 结束(含下标 i )的那段字符。如果 word 中不存在字符 ch ,则无需进行任何操作。
例如,如果 word = "abcdefd" 且 ch = "d" ,那么你应该 反转 从下标 0 开始、直到下标 3 结束(含下标 3 )。结果字符串将会是 "dcbaefd" 。
返回 结果字符串 。
来源:力扣(LeetCode)
- 示例 1
输入:word = "abcdefd", ch = "d"
输出:"dcbaefd"
解释:"d" 第一次出现在下标 3 。
反转从下标 0 到下标 3(含下标 3)的这段字符,结果字符串是 "dcbaefd" 。
- 示例 2
输入:word = "xyxzxe", ch = "z"
输出:"zxyxxe"
解释:"z" 第一次也是唯一一次出现是在下标 3 。
反转从下标 0 到下标 3(含下标 3)的这段字符,结果字符串是 "zxyxxe" 。
- 示例 3
输入:word = "abcd", ch = "z"
输出:"abcd"
解释:"z" 不存在于 word 中。
无需执行反转操作,结果字符串是 "abcd" 。
提示:
1 <= word.length <= 250word由小写英文字母组成ch是一个小写英文字母
思路分析
根据题意可知,只要在字符串word中找到和字符ch相同的字符,然后将字符串翻转一下,后面的字符不动,结果的字符串就是目的字符。
首先声明两个变量arr和strs,将字符串strs转换成数组,循环数组,在循环项中比对ch,若是相同那么就可以进行操作,将此时的循环前的字符串截取出来,然后翻转再拼接回去,最后得到的字符串就是目的字符串了。
AC代码
function solution(word, ch) {
word = word.split('');
let arr = [];
let strs = '';
for(let i = 0; i < word.length; i++) {
if(word[i] == ch) {
console.log(i)
arr = word.splice(0, i+1);
console.log(arr)
console.log(word)
arr = arr.reverse();
arr = arr.concat(word);
strs = arr.join('');
console.log(strs);
return strs;
}
}
}
let word = "xyxzxe", ch = "z";
solution(word, ch);