leetcode844
2021/6/13 18:23:08
本文主要是介绍leetcode844,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | class Solution: def backspaceCompare(self, s: str, t: str) -> bool: i = len(s) - 1 j = len(t) - 1 skips, skipt = 0, 0 while i >= 0 or j >= 0: # 只要s,t有一个没处理完,就继续进行处理。 while i >= 0: if s[i] == '#': # 当i对应的值是#时,标记+1,i向左移动。相当于把#所在位置跳过 skips += 1 i -= 1 elif skips > 0: # 当标记大于1的时候,标记-1,i继续左移,相当于把#前的字符跳过。这样就能实现退格效果。 skips -= 1 i -= 1 else: # 这个else的意思就是,这个位置的字符既不是#,此时标记skips也是0,那么这个时候,我们就需要判断,这个值是不是和字符串t中的最右面的值相等。这个时候,就要把i的循环先break一下,对j进行判断。 break while j >= 0: # 同上。 if t[j] == '#': skipt += 1 j -= 1 elif skipt > 0: skipt -= 1 j -= 1 else: break if i>=0 and j>=0:#当都大于等于0的时候,说明大家长度相同。 if s[i] != t[j]: # 只要s,t有一个对不上的,就直接返回False。如果对于这一个判断相等,那么i,j都向左移动,继续判断。 return False elif i>=0 or j>=0:#这意味着有一个可能已经超出边界了,即这两个字符串退格操作后,长度不等。 return False i -= 1 j -= 1 return True |
这篇关于leetcode844的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
原文链接: https://blog.csdn.net/yys130826/article/details/117882767
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南
- 2025-01-03图像文字理解,OCR、大模型还是多模态模型?PalliGema2在QLoRA技术上的微调与应用
- 2025-01-03混合搜索:用LanceDB实现语义和关键词结合的搜索技术(应用于实际项目)