一、描述
给你一个下标从 0 开始的字符串 word 和一个字符 ch 。找出 ch 第一次出现的下标 i ,反转 word 中从下标 0 开始、直到下标 i 结束(含下标 i )的那段字符。如果 word 中不存在字符 ch ,则无需进行任何操作。
如:输入:word = “abcdefd”, ch = “d”;输出:“dcbaefd”
// 1 <= word.length <= 250
// word 由小写英文字母组成
// ch 是一个小写英文字母
二、解
简单解法:
找到ch字符位于word中的位置,(遍历word每个字符)
对其进行反转,(使用双指针进行反转)
public static void main(String[] args) {
String word = "abcdefd";
char ch = 'd';
System.out.println(reversePrefix(word, ch));
}
public static String reversePrefix(String word, char ch) {
char[] chars = word.toCharArray();
for (int i = 0; i < chars.length; i++) {
if ( ch == chars[i]) {
char temp;
int first = 0, end = i;
while (first < end) {
temp = chars[first];
chars[first] = chars[end];
chars[end] = temp;
first++;
end--;
}
return new String(chars);
}
}
return word;
}
100 5
时间复杂度:O(n) 空间复杂度 O(n)
三、Tips
string类型的一些转换
String -> String[] : String[] chars = word.split("");
String -> char[] : char[] chars = word.toCharArray();
char[] -> String : new String(chars)