LeetCode 844. Backspace String Compare
创始人
2024-06-02 17:00:17
0

LeetCode 844. Backspace String Compare

题目描述

Given two strings s and t, return true if they are equal when both are typed into empty text editors. ‘#’ means a backspace character.

Note that after backspacing an empty text, the text will continue empty.

思路 1

设置两个栈stack1和stack2, 一个用来存储字符串 s, 一个用来存储字符串 t, 然后遍历两个栈, 如果两个栈的元素相同, 则返回 true, 否则返回 false.

算法 1

func backspaceCompare(s string, t string) bool {stack1 := sta(s)stack2 := sta(t)fmt.Println(stack1)fmt.Println(stack2)if len(stack1) != len(stack2) {return false}for i := 0; i < len(stack1); i++ {if stack1[i] != stack2[i] {return false}}return true
}func sta(str string) []rune {stack := make([]rune, 0)for _, v := range str {if v != '#' {stack = append(stack, v)} else if len(stack) > 0 {stack = stack[:len(stack)-1]}}return stack
}

思路 2

  1. 首先从后往前遍历字符串, 设置两个指针 ij, 分别指向字符串 st 的末尾, 还有一个back变量记录 # 的个数
  2. 如果遇到 #, 则 back 加 1, 如果遇到字符, 则判断 back 是否大于 0, 如果大于 0, 则 back 减 1, 表示下一个字符被删除了
  3. 如果两个指针指向的字符相同, 则ij继续向前移动, 否则返回false
  4. 如果两个指针都移动到了字符串的开头, 则返回 true

算法2

func backspaceCompare(s string, t string) bool {i, j, back := len(s)-1, len(t)-1, 0for {back = 0for i >= 0 && (back > 0 || s[i] == '#') {if s[i] == '#' {back++} else {back--}i--}back = 0for j >= 0 && (back > 0 || t[j] == '#') {if t[j] == '#' {back++} else {back--}j--}if i >= 0 && j >= 0 && s[i] == t[j] {j--i--} else {break}}return i == -1 && j == -1
}

相关内容

热门资讯

橘子系统与安卓系统互换,探索跨... 你有没有想过,你的手机系统是不是也能来个“换脸术”?没错,就是那种从安卓换成橘子系统,或者反过来,让...
安卓10系统国内手机,国内手机... 你知道吗?最近手机圈可是热闹非凡呢!尤其是那些还在使用安卓10系统的国内手机,它们的故事可真是让人津...
安卓系统测试需要技能,从入门到... 你有没有想过,为什么你的安卓手机有时候会卡得像蜗牛呢?嘿这背后可大有学问哦!今天,就让我带你一探究竟...
数码平板推荐安卓系统,性能与体... 你有没有想过,在这个信息爆炸的时代,一款好用的数码平板简直就是生活的得力助手!想象无论是追剧、办公还...
安卓系统光感亮度,优化视觉体验 手机屏幕亮度总是让你眼花缭乱?别急,今天就来和你聊聊安卓系统里的光感亮度那些事儿,让你轻松掌握调节技...
e900安卓系统,畅享智能家庭... 你家的老电视是不是已经有点跟不上潮流了呢?别急,今天就来给你揭秘如何让你的老电视焕发新生,变身成为智...
安卓手机怎么分身系统,安卓手机... 你有没有想过,你的安卓手机其实是个变装达人呢?没错,它不仅能唱歌跳舞,还能变身成两个不同的自己!这就...
安卓系统群发链接吗,轻松实现高... 你有没有想过,在微信里给一群好友发送同一个链接,是不是能省下不少时间呢?想象你只需要轻轻一点,就能把...
安卓系统 添加无线驱动,And... 你有没有遇到过这种情况:新入手了一款安卓设备,却发现它那神秘的无线功能好像被施了魔法,怎么也激活不了...
魅族8 安卓系统,探索智能生活... 你有没有听说最近魅族出了一款新机——魅族8?这款手机一经发布,就引起了不小的轰动。今天,就让我带你从...
国产安卓系统手表推荐,全面解析... 说到智能手表,你有没有想过,为什么苹果的Apple Watch总是那么抢手呢?其实,国产安卓系统手表...
安卓系统emui系统怎么样,实... 亲爱的读者们,你是否曾在手机屏幕前,对着那花花绿绿的界面发呆,感叹科技的神奇?今天,就让我带你走进华...
电脑系统有安卓,融合与创新之旅 你有没有想过,在电脑上也能用安卓系统呢?没错,就是那个让你手机不离手的安卓!想象在电脑上玩手游、刷抖...
安卓系统无足迹可查,隐私保护新... 你有没有想过,你的安卓手机里藏着多少秘密?是不是好奇过,你的手机有没有记录下你的每一次出行?别急,今...
安卓系统可以空投吗,安卓系统实... 你有没有想过,在安卓手机上也能来一场“空中快递”的奇妙之旅呢?没错,就是那种像苹果手机里的“隔空投送...
安卓系统显示电话hd,高清语音... 亲爱的手机控们,你们有没有注意到,在安卓手机的状态栏里,有时候会出现一个神秘的“HD”标志呢?别小看...
华为无法退回安卓系统,华为手机... 最近有个话题在朋友圈里炒得火热,那就是“华为手机怎么退回安卓系统”。不少小伙伴都表示,升级了鸿蒙系统...
colors系统切换回安卓,探... 哎呀呀,亲爱的手机控们,你们有没有想过,自己的手机系统也能像换衣服一样,随心所欲地切换呢?没错,今天...
安卓10系统管家,全面解析系统... 亲爱的安卓手机用户们,你们有没有想过,你的手机里那个默默无闻的“系统管家”到底有多厉害呢?今天,就让...
安卓系统cf怎么转到苹果系统,... 亲爱的玩家们,你们是不是也和我一样,曾经为了换手机而烦恼过呢?尤其是那些忠实的CF手游玩家,换手机后...