华为机考攻略(python)--字符串操作【9题】(第六题leetcode1839所有元音按顺序排布的最长子字符串)

57 篇文章 4 订阅

系列文章目录


前言

一、leetcode1839所有元音按顺序排布的最长子字符串

描述: 当一个字符串满足如下条件时,我们称它是美丽的:
1.所有5个英文元音字母(‘a’,‘e’,‘i’,‘o’,‘u’)都必须至少出现一次
2.这些元音字母的顺序都必须按照字典序升序排布
比方说,字符串"aeiou"和"aaaaaaeiiiioou"都是美丽的,而"uaeio",“aeoiu"等不是美丽的
给你一个只包含英文元音字母的字符串word,请你返回word中最长美丽子字符串的长度。如果不存在返回0
子字符串: 是字符串中一个连续的字符串序列
示例1:
输入:word = “aeiaaioaaaaeiiiiouuuooaauuaeiu”
输出:13
解释:最长子字符串是"aaaaeiiiiouuu”,长度为13
示例2:
输入:word = “aeeeiiiioooauuuaeiou”
输出:5
解释:最长子字符串是 “aeiou” ,长度为 5 。
示例 3:
输入:word = “a”
输出:0
解释:没有美丽子字符串,所以返回 0 。

提示:
1<=word.length<=5*10**5
‘’’

二、sound code

代码如下(示例):

class Solution:
    def longestBeautifulSubstring(self, word: str) -> int:
        newword = ''
        cnt = []
        for i in range(len(word)):
            if i == 0 or word[i] != word[i - 1]:
                newword += word[i]
                cnt.append(1)
            else:
                cnt[-1] += 1

        res = 0
        for i in range(len(newword) - 4):
            if newword[i : i + 5] == 'aeiou':
                res = max(res, sum(cnt[i : i + 5]))
        return res
s = Solution()
print(s.longestBeautifulSubstring(input()))

总结

分享:
思维是人脑的产物。它是通过表象、概念、判断等来反映客观现实的一种能动的过程。
思维是物质的衍生物,它不能脱离物质载体——大脑而单独存在。然而,思维的结晶一旦物化为精神产品后,却可以不依赖创作者本人而传承和复制,这是思维的特征之一。
偏见会使思维陷入狭小的范围,形成单一的思维通道。只有容纳各种观点,经过综合分析,才能做出正确判断。因此,科学的思维必须摒弃偏见。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若竹之心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值