2128. Reverse Prefix of Word
2026/1/12大约 2 分钟约 450 字
2128. Reverse Prefix of Word
难度: Easy
题目描述
Given a 0-indexed string word and a character ch, reverse the segment of word that starts at index 0 and ends at the index of the first occurrence of ch (inclusive). If the character ch does not exist in word, do nothing.
- For example, if
word = "abcdefd"andch = "d", then you should reverse the segment that starts at0and ends at3(inclusive). The resulting string will be"dcbaefd".
Return the resulting string.
Example 1:
Input: word = "abcdefd", ch = "d" Output: "dcbaefd" Explanation: The first occurrence of "d" is at index 3. Reverse the part of word from 0 to 3 (inclusive), the resulting string is "dcbaefd".
Example 2:
Input: word = "xyxzxe", ch = "z" Output: "zxyxxe" Explanation: The first and only occurrence of "z" is at index 3. Reverse the part of word from 0 to 3 (inclusive), the resulting string is "zxyxxe".
Example 3:
Input: word = "abcd", ch = "z" Output: "abcd" Explanation: "z" does not exist in word. You should not do any reverse operation, the resulting string is "abcd".
Constraints:
1 <= word.length <= 250wordconsists of lowercase English letters.chis a lowercase English letter.
解题思路
代码实现
解决方案
java
class Solution {
public String reversePrefix(String word, char ch) {
LinkedList<Character> stack = new LinkedList<>();
char[] charArray = word.toCharArray();
StringBuilder sb = new StringBuilder();
int i = 0;
for (char c : charArray) {
if (c == ch) {
stack.push(c);
break;
}
stack.push(c);
i++;
}
if(i ==charArray.length){
return word;
}
while (!stack.isEmpty()) {
sb.append(stack.pop());
}
for (int j = i + 1; j < charArray.length; j++) {
sb.append(charArray[j]);
}
return sb.toString();
}
}