Problem
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” and ch = “d”, then you should reverse the segment that starts at 0 and ends at 3 (inclusive). The resulting string will be “dcbaefd”.
Return the resulting string
Algorithm
Find the position (index) of the first occurrence of ‘ch’, then reverse the characters before index and concatenate them with the remaining part.
Code
class Solution:
def reversePrefix(self, word: str, ch: str) -> str:
index, wlen = -1, len(word)
for i in range(wlen):
if word[i] == ch:
index = i+1
break
if index <= wlen and index >= 0:
return word[:index][::-1] + word[index:]
else:
return word