Remove Substrings in One Iteration in python

When working with string manipulation, we often need to remove multiple substrings efficiently. Python's replace() method allows us to chain operations to remove different patterns in sequence.

Problem Statement

Given a string, we need to remove all occurrences of "y" and "xz" substrings. For example, if the input string is "xyxxzyyxxzx", the output should be "xxxx" after removing these patterns.

Solution Approach

To solve this problem, we will follow these steps ?

  • First, remove all "xz" substrings from the original string
  • Then, remove all "y" characters from the resulting string
  • Return the final cleaned string

Implementation

Let us see the following implementation to get better understanding ?

class Solution:
    def solve(self, s):
        return s.replace("xz", "").replace("y", "")

# Test the solution
ob = Solution()
result = ob.solve("xyxxzyyxxzx")
print(result)

The output of the above code is ?

xxxx

How It Works

The solution uses method chaining with the replace() function:

  1. s.replace("xz", "") removes all "xz" substrings first
  2. .replace("y", "") then removes all "y" characters from the result
  3. Both operations are performed in sequence, effectively cleaning the string in one iteration

Step-by-Step Example

s = "xyxxzyyxxzx"
print(f"Original string: {s}")

# Step 1: Remove "xz"
temp = s.replace("xz", "")
print(f"After removing 'xz': {temp}")

# Step 2: Remove "y"
result = temp.replace("y", "")
print(f"Final result: {result}")
Original string: xyxxzyyxxzx
After removing 'xz': xyyyy x
Final result: xxxx

Alternative Function-Based Approach

def remove_substrings(s):
    """Remove 'xz' and 'y' substrings from the input string."""
    return s.replace("xz", "").replace("y", "")

# Test with multiple examples
test_cases = ["xyxxzyyxxzx", "yxzyx", "hello", "xzxzyyy"]

for test in test_cases:
    result = remove_substrings(test)
    print(f"'{test}' ? '{result}'")
'xyxxzyyxxzx' ? 'xxxx'
'yxzyx' ? 'x'
'hello' ? 'hello'
'xzxzyyy' ? ''

Conclusion

The replace() method provides an efficient way to remove multiple substrings by chaining operations. This approach is simple, readable, and handles the removal of both "xz" and "y" patterns in a single pass through method chaining.

Updated on: 2026-03-25T10:21:09+05:30

210 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements