python笔记(3) --- 3330. 找到初始输入字符串 I

题目来自力扣3330. 找到初始输入字符串 I - 力扣(LeetCode)

记录每日刷题学习过程,如有侵权问题,联系作者删除。  

欢迎有意向的同学们交流学习。

一、题目描述

Alice 正在她的电脑上输入一个字符串。但是她打字技术比较笨拙,她 可能 在一个按键上按太久,导致一个字符被输入 多次 。

尽管 Alice 尽可能集中注意力,她仍然可能会犯错 至多 一次。

给你一个字符串 word ,它表示 最终 显示在 Alice 显示屏上的结果。

请你返回 Alice 一开始可能想要输入字符串的总方案数。

示例1:

输入:word = "abbcccc"

输出:5

解释:

可能的字符串包括:"abbcccc" ,"abbccc" ,"abbcc" ,"abbc" 和 "abcccc" 。

示例2:

输入:word = "abcd"

输出:1

解释:

唯一可能的字符串是 "abcd" 。

示例3:

输入:word = "aaaa"

输出:4

二、思路笔记

题目要求中的输入犯错至多只有一次,且错误可能是一个键出现多次。

遍历word, 当word[i] == word[i-1]的时候,证明此处可能是出现错误的地方,此时最终的总方案数+1,知道遍历持续至字符串结尾。

此题不能通过直接set去重的方式求得,因为字符串可能出现aba的形式,此时的a并不属于可能重复的类型。

三、代码

class Solution:
    def possibleStringCount(self, word: str) -> int:
        num = 0
        for i in range(1, len(word)):
            if word[i] == word[i - 1]:
                num += 1
        return num + 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值