Pankaj Tanwar
Published on

Reverse Prefix of Word.

––– views
Authors

Problem of the day - Reverse Prefix of Word

Tag - 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" 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.

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".


I had a couple of thought in mind. How about find the index of char and reverse the sub-string and concat it. But it seems, very slow algo.

To reverse the string, I came up the approach of swapping elements. Pretty basic stuff.

class Solution {
public:
string reversePrefix(string word, char ch) {
int char_index = -1;
char temp;
for(int i=0;i<word.length();i++) {
if(word[i] == ch) {
char_index = i;
break;
}
}
// if not found
if(char_index == -1) return word;
// swap elements
for(int i=0;i<=char_index / 2;i++) {
temp = word[i];
word[i] = word[char_index - i];
word[char_index - i] = temp;
}
return word;
}
};

If you feel, I am missing on something, feel free to reach out to me


I welcome your suggestions to improve it further!


Thanks for being part of my daily-code-workout journey. As always, if you have any thoughts about anything shared above, don't hesitate to reach out.


You might like previous editions of my coding diary