• 标题:最长的指定瑕疵度的元音子串 | 时间限制:1秒 | 内存限制:262144K | 语言限制:不限
    开头和结尾都是元音字母(aeiouAEIOU)的字符串为 元音字符串 ,其中混杂的非元音字母数量为其 瑕疵度 。比如:

· “a” 、 “aa”是元音字符串,其瑕疵度都为0

· “aiur”不是元音字符串(结尾不是元音字符)

· “abira”是元音字符串,其瑕疵度为2

给定一个字符串,请找出指定瑕疵度的最长元音字符子串,并输出其长度,如果找不到满足条件的元音字符子串,输出0。

子串:字符串中任意个连续的字符组成的子序列称为该字符串的子串。

收起
输入描述:
首行输入是一个整数,表示预期的瑕疵度flaw,取值范围[0, 65535]。
接下来一行是一个仅由字符a-z和A-Z组成的字符串,字符串长度(0, 65535]。
输出描述:
输出为一个整数,代表满足条件的元音字符子串的长度。

示例1
输入
0
asdbuiodevauufgh
输出
3
说明
满足条件的最长元音字符子串有两个,分别为uio和auu,长度为3。

示例2
输入
2
aeueo
输出
0
说明
没有满足条件的元音字符子串,输出0
示例3
输入
1
aabeebuu
输出
5
说明
满足条件的最长元音字符子串有两个,分别为aabee和eebuu,长度为5

解法:使用双指针
代码如下:

def longest_alp(degree, string):vowel_string = "aeiouAEIOU"head, length, tail = 0, 0, len(string) - 1def flaw_degree(string):degree = 0for i in string:if i in vowel_string:continuedegree += 1return degreeresult = []while head <= tail:if string[head].startswith(tuple(vowel_string)) and string[tail].endswith(tuple(vowel_string)):result.append(string[head:tail + 1])if string[head + 1].startswith(tuple(vowel_string)):tail -= 1else:head += 1elif string[head].startswith(tuple(vowel_string)) and not string[tail].endswith(tuple(vowel_string)):tail -= 1else:head += 1for item in result:if flaw_degree(item) == degree:length = max(length, len(item))return lengthif __name__ == '__main__':print(longest_alp(0, "asdbuiodevauufgh"))print(longest_alp(2, "aeueo"))print(longest_alp(1, "aabeebuu"))

最长的指定瑕疵度的元音字串相关推荐

  1. 算法题-双指针(最长的指定瑕疵度的元音子串(答案、解析))

    目录 题目 最长的指定瑕疵度的元音子串 题目描述 解答要求 答案 解析 核心思想 题目 注意要选好先判断左指针还是右指针可以节省不必要的操作. 最长的指定瑕疵度的元音子串 hash算法.双指针 题目描 ...

  2. 华为机试:最长的指定瑕疵度的元音子串

    题目来源 华为机试:最长的指定瑕疵度的元音子串 题目描述 题目解析 滑动窗口太容易出错了 我们把它想象成一个队列,无脑往queue中塞元素,并且记录非元音的个数,当非元音的个数等于flow个时,记录最 ...

  3. 无法删除 U 盘中文件,并提示“指定的文件名无效或太长 请指定另一个文件名”

    错误描述: 在删除 U 盘文件夹.文件时,无法删除,并提示 "指定的文件名无效或太长 请指定另一个文件名" 即使使用 360 文件粉碎器都无法删除 解决方法: 将 U 盘在 Mac ...

  4. 字符串相关处理kmp,前缀数,后缀树,后缀数组,最长回文串,最长重复字串,最长非重复字串

    1. 最长回文串 一般用后缀数组或者后缀树可以解决, 用此方法:http://blog.csdn.net/v_july_v/article/details/6897097 预处理后缀树,使得查询LCA ...

  5. php无重复字符的最长子串,无重复字符的最长字串问题

    leetcode3:无重复字符的最长字串问题 问题描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释 ...

  6. LC3无重复最长字串

    链接:无重复最长字串 步骤: 定义两个指针i,j 表示当前扫描到的字串是[i,j] (闭区间)扫描过程中维护一个哈希表unordered_map<char,int> hash 表示[i, ...

  7. LeetCode中等题之无重复字符的最长字串

    题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 &q ...

  8. 最长公共子序列(LCS)问题 Longest Common Subsequence 与最长公告字串 longest common substr...

    问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字符序列X="x0,x1,-,xm-1",序列Y=& ...

  9. 算法--无重复字符的最长字串(详细)

    给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度 class Solution {public int lengthOfLongestSubstring(String s) {// ...

最新文章

  1. ifelse的命令空间
  2. NCHW与NHWC格式
  3. Kafka 消息监控 - Kafka Eagle
  4. 消息队列—经典5连问—你能抗几道?
  5. 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】)...
  6. div居中与div内容居中,不一样
  7. 唤醒控件曾经拥有的能力
  8. [Leedcode][JAVA][第460题][LFU]
  9. 关闭 Pycharm 更新提示
  10. Ubuntu设置开机启动
  11. NETSCREEN用L2TP方式建立×××
  12. scratch少儿趣味编程之让小猫原地转圈
  13. 为什么程序员不需要MATLAB技能?
  14. ps2021中文版完美逆袭
  15. 新媒体下旅游目的地营销研究――以安徽省灵璧县为例
  16. arm mali 天梯图_手机cpu天梯图2019年4月最新排行 手机处理器性能天梯图
  17. linux leanote云笔记搭建
  18. 使用Scratch 3.0制作弹球游戏(一)——课题准备
  19. electron获取媒体流(实现屏幕分享)
  20. 设备产线运维合集丨图扑数字孪生流水线,提升产品装配自动化效率

热门文章

  1. RTL8188CUS驱动程序编译步骤
  2. 目标检测之CSK(Exploiting the Circulant Structure of Tracking-by-detection with Kernels)
  3. 规则引擎--Drools之规则文件
  4. 科学计算机上的符号是什么意思,计算器上各个符号是什么意思_计算器各键说明【图文】-太平洋IT百科手机版...
  5. 【Python】对英文文本进行词频统计(分词、字典排序、文件读写)
  6. 楷书书法规则_毛笔书法楷书的结构规则
  7. Python新手入门指导
  8. 330tsl是什么意思_大众途观2015款车尾330tsl是什么意思
  9. Android GreenDao
  10. 【Android】基于Airtest实现大麦网app自动抢票程序