T I Double Guh Er II - codepath/compsci_guides GitHub Wiki
TIP102 Unit 1 Session 1 Advanced (Click for link to problem statements)
Problem Highlights
- 💡 Difficulty: Easy
- ⏰ Time to complete: 5 mins
- 🛠️ Topics: Strings, Substring Replacement
U-nderstand
Understand what the interviewer is asking for by using test cases and questions about the problem.
-
Q: What is the input to the function?
- A: The input is a string
word
that may contain substrings "t", "i", "gg", or "er" that need to be removed.
- A: The input is a string
-
Q: What is the expected output of the function?
- A: The function should return a new string with the substrings "t", "i", "gg", and "er" removed.
-
Q: How should the function handle case sensitivity?
- A: The function should be case insensitive, meaning "T", "I", "GG", and "ER" should also be removed if present.
-
Q: What if the string is empty or does not contain any of the specified substrings?
- A: If the string is empty, the function should return an empty string. If none of the specified substrings are present, the function should return the original string, converted to lowercase.
-
The function
tiggerfy()
should take a string word and return a new string with the substrings t, i, gg, and er removed. The function should be case insensitive.
HAPPY CASE
Input: `Trigger`
Expected Output: `r`
Explanation: Removing `t`, `i`, `gg`, and `er` from `Trigger` results in `r`.
Input: `eggplant`
Expected Output: `eplan`
Explanation: Removing `g` from `eggplant` results in `eplan`.
EDGE CASE
Input: `Choir`
Expected Output: `Choir`
Explanation: No specified substrings are present in `Choir`, so it remains unchanged.
P-lan
Plan the solution with appropriate visualizations and pseudocode.
General Idea: Convert the string to lowercase to ensure case insensitivity, then iteratively replace each specified substring with an empty string.
1. Define the function `tiggerfy(word)`.
2. Convert the `word` to lowercase to handle case insensitivity.
3. Replace the substrings `t`, `i`, `gg`, and `er` with an empty string in the `word`.
4. Return the modified `word`.
⚠️ Common Mistakes
- Forgetting to handle case insensitivity by not converting the input to lowercase.
- Not replacing substrings in the correct order, which may cause issues if larger substrings are part of smaller ones.
I-mplement
Implement the code to solve the algorithm.
def tiggerfy(word):
# Convert the word to lowercase to handle case insensitivity
word_lower = word.lower()
# Replace the specified substrings with an empty string
word_lower = word_lower.replace('t', '')
word_lower = word_lower.replace('i', '')
word_lower = word_lower.replace('gg', '')
word_lower = word_lower.replace('er', '')
return word_lower