【英文题目】(学习英语的同时,更能理解题意哟~)
Given two strings S
and T
, return if they are equal when both are typed into empty text editors. #
means a backspace character.
Example 1:
代码语言:javascript复制Input: S = "ab#c", T = "ad#c"
Output: true
Explanation: Both S and T become "ac".
Example 2:
代码语言:javascript复制Input: S = "ab##", T = "c#d#"
Output: true
Explanation: Both S and T become "".
【中文题目】
给定 S
和 T
两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 #
代表退格字符。
示例 1:
代码语言:javascript复制输入:S = "ab#c", T = "ad#c"
输出:true
解释:S 和 T 都会变成 “ac”。
示例 2:
代码语言:javascript复制输入:S = "ab##", T = "c#d#"
输出:true
解释:S 和 T 都会变成 “”。
【思路】
从后往前遍历,只要是#,判断前一个字符是否是#,是则#数量加1,不是则#数量减1并且继续判断前一个字符是否为#,直到没有字符或者找到退格后的最后一个字符,进行比较即可。
【代码】
python版本
代码语言:javascript复制class Solution(object):
def backspaceCompare(self, S, T):
"""
:type S: str
:type T: str
:rtype: bool
"""
count1 =
count2 =
i, j = len(S) - , len(T) -
while i >= or j >= :
while S[i] == '#':
i -=
count1 =
while count1 > and i >= :
if S[i] == '#':
count1 =
else:
count1 -=
i -=
while T[j] == '#':
j -=
count2 =
while count2 > and j >= :
if T[j] == '#':
count2 =
else:
count2 -=
j -=
if i < and j < :
return True
elif (i >= and j >= ) and S[i] == T[j]:
i -=
j -=
else:
return False
return True