【Leetcode每日一题】925. 长按键入 (字符串比较)

it2024-06-27  44

Leetcode每日一题 题目链接: 925. 长按键入 解题思路: 使用两个指针name_index 和 typed_index 分别对两个字符串进行遍历,分为以下三种情况:

- 当前两个字符相同并且下一个字符也相同时,同时向后移动一个字符 - 当前两个字符相同并且下一个字符不相同时,typed_index 向后移动一个字符 - 其他情况则为False

最后判断name_index 和 typed_index 是否的大小是否和字符串长度一致即可。有一个小trick,因为要判断下一个字符,可以在字符最后面加上 $ 防止下标溢出和最后的字符判断。 题解:

class Solution: def isLongPressedName(self, name: str, typed: str) -> bool: if len(name) == 0: return True if len(typed) == 0: return False name += "$" typed += "$" len_name = len(name) - 1 len_typed = len(typed) - 1 name_index, typed_index = 0, 0 while name_index < len_name and typed_index < len_typed: if (name[name_index] == typed[typed_index]) and (name[name_index + 1] == typed[typed_index + 1]): typed_index += 1 name_index += 1 elif (name[name_index] == typed[typed_index]) and (name[name_index + 1] != typed[typed_index + 1]): typed_index += 1 else: break # print(name_index, typed_index) return name_index == len_name and typed_index == len_typed
最新回复(0)