LeetCode #2000 Reverse Prefix of Word Solution & Explanation

LeetCode Problem

Given a 0-indexed string word and a character chreverse 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".

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 <= 250
  • word consists of lowercase English letters.
  • ch is a lowercase English letter.

Solution

We can use a for loop or a built-in function like IndexOf to find the first occurrence index of the specific character.

After finding the index, we reverse the string before it.

C# Solution

Solution1 – for loop

public class Solution {
    public string ReversePrefix(string word, char ch) {
        for(int i = 0; i<word.Length; i++){
            var c = word[i];

            if(c==ch){
                string first = word.Substring(0, i+1); 
                char[] charArr = first.ToCharArray();
                Array.Reverse(charArr);

                return new String(charArr)+word.Substring(i+1);
            }
        }

        return word;
    }
}

Solution2 – IndexOf

public class Solution {
    public string ReversePrefix(string word, char ch) {
        int i = word.IndexOf(ch);

        if(i!=-1){
            string first = word.Substring(0, i+1); 
            char[] charArr = first.ToCharArray();
            Array.Reverse(charArr);

            return new String(charArr)+word.Substring(i+1);
        }
        
        return word;
    }
}
Klook.com

Conclusion

🧡If my solution helps, that is my honor!

🧡You can support me by sharing my posts, thanks a lot

If you got any problem about the explanation, please feel free to let me know

The problem link : Reverse Prefix of Word – LeetCode

Similar Questions(reverse the string)

Some Random LeetCode posts

Leave a Reply

Your email address will not be published. Required fields are marked *