LeetCode Problem Workspace

Remove Trailing Zeros From a String

Remove trailing zeros from a string representing a positive integer number.

category

1

Topics

code_blocks

6

Code langs

hub

3

Related

Practice Focus

Easy · String-driven solution strategy

bolt

Answer-first summary

Remove trailing zeros from a string representing a positive integer number.

Interview AiBox logo

Ace coding interviews with Interview AiBox guidance for String-driven solution strategy

Try AiBox Copilotarrow_forward

The problem requires removing trailing zeros from a string representation of a positive integer. A string-driven solution strategy is the key, which involves finding the last non-zero digit and trimming the string from the right. Handling edge cases, such as no zeros or strings already without trailing zeros, is essential.

Problem Statement

You are given a positive integer num represented as a string. Your task is to return the integer num as a string, with all trailing zeros removed.

The input string only contains digits, and the length of num can be up to 1000 characters. There are no leading zeros in the input string.

Examples

Example 1

Input: num = "51230100"

Output: "512301"

Integer "51230100" has 2 trailing zeros, we remove them and return integer "512301".

Example 2

Input: num = "123"

Output: "123"

Integer "123" has no trailing zeros, we return integer "123".

Constraints

  • 1 <= num.length <= 1000
  • num consists of only digits.
  • num doesn't have any leading zeros.

Solution Approach

Simple String Trim

Iterate through the string from right to left, removing zeros until a non-zero digit is encountered. Return the modified string.

Using String Methods

Use Python's rstrip() method to remove trailing zeros from the string, as it's an efficient and straightforward solution.

Manual String Manipulation

Manually traverse the string from the end, counting the zeros and trimming them without using built-in functions.

Complexity Analysis

Metric Value
Time Depends on the final approach
Space Depends on the final approach

The time complexity for this problem is O(n), where n is the length of the string. Space complexity depends on the method chosen, ranging from O(1) with in-place manipulation to O(n) with string operations.

What Interviewers Usually Probe

  • Look for the candidate’s understanding of string manipulation and edge case handling.
  • Evaluate how they handle the potential inefficiency of large string sizes.
  • Test if they can provide a clear solution for non-zero trimming using string methods.

Common Pitfalls or Variants

Common pitfalls

  • Failing to handle edge cases where there are no trailing zeros.
  • Misunderstanding the requirement for string manipulation versus integer-based solutions.
  • Not considering the potential impact on performance with large strings.

Follow-up variants

  • Consider variations where the input string contains only zeros.
  • Explore edge cases where the number is a single-digit integer with no trailing zeros.
  • Evaluate solutions that also account for leading zeros (if applicable in different scenarios).

FAQ

What is the main approach to solving "Remove Trailing Zeros From a String"?

The main approach involves string manipulation, specifically removing trailing zeros by iterating from the end of the string or using built-in methods like rstrip().

How do you handle strings with no trailing zeros?

If no trailing zeros are present, simply return the original string as no changes are necessary.

Can I use integer-based solutions for this problem?

No, the problem specifically requires working with a string representation, so integer-based solutions won't work for removing trailing zeros.

What if the input string contains only zeros?

In that case, the output should be "0", as a string of zeros should be reduced to a single zero.

What is the time complexity of the solution?

The time complexity is O(n), where n is the length of the string, as we must check each character from the end to the start.

terminal

Solution

Solution 1: Traversal

We can traverse the string from the end to the beginning, stopping when we encounter the first character that is not `0`. Then, we return the substring from the beginning to this character.

1
2
3
class Solution:
    def removeTrailingZeros(self, num: str) -> str:
        return num.rstrip("0")
Remove Trailing Zeros From a String Solution: String-driven solution strategy | LeetCode #2710 Easy