You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何逐字符分析字符串判断是否含2个小写元音及连续小写字母

字符串校验实现方案

需求明确

  • 校验规则1:字符串包含至少2个非大写元音字母,元音特指a、e、i、o、u
  • 校验规则2:字符串存在至少2个字母表顺序连续的非大写字母,即相邻小写字母的ASCII码差值为1
  • 两个规则同时满足才判定为有效字符串,参考示例:aabcd为有效字符串,cdefgh为无效字符串

逐字符校验实现思路

仅需一次遍历即可完成两项校验,无需多次扫描字符串,具体步骤如下:

  1. 预定义小写元音集合:vowels = {'a', 'e', 'i', 'o', 'u'}
  2. 初始化统计变量:vowel_count统计小写元音出现次数,has_consecutive标记是否找到连续小写字母
  3. 按索引逐个遍历字符串字符:
    • 若当前字符属于元音集合,vowel_count自增1
    • 若不是首个字符,判断当前字符与前一个字符是否均为小写,且ASCII码差值为1,是则将has_consecutive设为True
  4. 遍历结束后,只要满足vowel_count >=2且has_consecutive为真,就返回有效,否则返回无效

Python实现示例

def check_valid_string(s):
    vowels = {'a', 'e', 'i', 'o', 'u'}
    vowel_count = 0
    has_consecutive = False
    
    for i in range(len(s)):
        current = s[i]
        # 统计小写元音数量
        if current in vowels:
            vowel_count += 1
        # 判断相邻连续小写字母
        if i > 0:
            prev = s[i-1]
            if prev.islower() and current.islower() and ord(current) - ord(prev) == 1:
                has_consecutive = True
    return vowel_count >= 2 and has_consecutive

测试用例验证

  • 入参aabcd:元音计数为2,存在a和b连续,返回True,符合示例要求
  • 入参cdefgh:元音计数仅为1(仅含e),返回False,符合示例要求
  • 入参aeiou:元音计数为5,但无连续小写字母,返回False
  • 入参aabbcc:元音计数为2,存在多组连续小写字母,返回True

内容的提问来源于stack exchange,提问作者repulsive2020

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 07:09:06