1425. 比较含退格的字符串

1425. 比较含退格的字符串

中文 English

给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。

样例

样例 1:

输入:S = "ab#c", T = "ad#c"
输出:true
解释:S 和 T 都会变成 “ac”。

样例 2:

输入:S = "ab##", T = "c#d#"
输出:true
解释:S 和 T 都会变成 “”。

样例 3:

输入:S = "a##c", T = "#a#c"
输出:true
解释:S 和 T 都会变成 “c”。

示例 4:

输入:S = "a#c", T = "b"
输出:false
解释:S 会变成 “c”,但 T 仍然是 “b”。

挑战

你可以在O(N)O(N)的时间复杂度和O(1)O(1)的额外空间复杂度完成吗?

注意事项

  1. 1 <= S.length <= 200
  2. 1 <= T.length <= 200
  3. S 和 T 只含有小写字母以及字符 '#'
 
 
输入测试数据 (每行一个参数) 如何理解测试数据?
class Solution:
    """
    @param S: string S
    @param T: string T
    @return: Backspace String Compare
    """
    '''
    大致思路:
    1.O(n)时间复杂度,给出一个方法,可以取得S和T退格之后的字符串。然后判断返回即可。
    '''
    def  backspaceCompare(self,S,T):
        return self.backS(S) == self.backS(T)

    def backS(self,s):
        i = 0
        res = ''
        for j in s[::-1]:
            if j == '#':
                i += 1
            else:
                if i == 0:
                    res += j
                else:
                    i -= 1
        return res[::-1]

猜你喜欢

转载自www.cnblogs.com/yunxintryyoubest/p/12741868.html