华为OD统一考试D卷C卷 - 求满足条件的最长子串的长度py
题目描述
给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度,字符串本身是其最长的子串,子串要求: 1、 只包含1个字母(az, AZ),其余必须是数字; 2、 字母可以在子串中的任意位置; 如果找不到满足要求的子串,如全是字母或全是数字,则返回-1。
输入描述
字符串(只包含字母和数字)
输出描述
子串的长度
用例
输入 | abC124ACb |
输出 | 4 |
说明 | 满足条件的最长子串是C124或者124A,长度都是4 |
输入 | a5 |
输出 | 2 |
说明 | 字符串自身就是满足条件的子串,长度为2 |
输入 | aBB9 |
输出 | 2 |
说明 | 满足条件的子串为B9,长度为2 |
输入 | abcdef |
输出 | -1 |
说明 | 没有满足要求的子串,返回-1 |
python
from collections import deque
# 读取输入的字符串
str = input()
# 初始化最长子串长度为-1
maxLen = -1
# 初始化一个标志,表示是否找到了包含字母的子串
hasLetter = False
# 初始化双指针l和r,分别表示子串的左右边界
l, r = 0, 0
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
机试E卷D卷刷题日记 文章被收录于专栏
机试刷题记录