題目: 給定 S 和 T 兩個(gè)字符串,當(dāng)它們分別被輸入到空白的文本編輯器后,判斷二者是否相等,并返回結(jié)果。 # 代表退格字符。
注意:如果對(duì)空文本輸入退格字符,文本繼續(xù)為空
示例 1:
輸入:S = "ab#c", T = "ad#c"
輸出:true
解釋?zhuān)篠 和 T 都會(huì)變成 “ac”。
示例 2:
輸入:S = "ab##", T = "c#d#"
輸出:true
解釋?zhuān)篠 和 T 都會(huì)變成 “”。
示例 3:
輸入:S = "a##c", T = "#a#c"
輸出:true
解釋?zhuān)篠 和 T 都會(huì)變成 “c”。
示例 4:
輸入:S = "a#c", T = "b"
輸出:false
解釋?zhuān)篠 會(huì)變成 “c”,但 T 仍然是 “b”。
解題思路
這種方法比較好理解, 通過(guò)插入移出處理字符串
設(shè)置一個(gè)空字符串作為容器, 判斷無(wú)#插入, 有#移出最后一個(gè)字符串
最后判斷處理完的字符串是否相等
代碼
func backspaceCompare(_ S: String, _ T: String) -> Bool {
return handle(S) == handle(T)
}
func handle(_ string: String) -> String {
var a = ""
for i in string {
if i == "#" {
a.popLast()
} else {
a.append(i)
}
}
return a
}
題目來(lái)源:力扣(LeetCode) 感謝力扣爸爸 :)
IOS 算法合集地址