AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3204. 求满足条件的最长子串的长度

中等通过率 42% · 提交 1,105 · 通过 463
滑动窗口字符串不定滑窗

小慕在开发一个字符串解析工具时遇到了一个问题。给定一个只包含字母和数字的字符串,需要找出其中最长的的长度,字符串本身也算作一个子串。这个子串必须满足以下条件: 1. 子串中只能包含1个字母(a~z, A~Z),其余字符必须是数字; 2. 这个唯一的字母可以出现在子串中的任意位置。 如果整个字符串中不存在满足要求的子串(例如字符串全是字母或全是数字),则

提示:带虚线的词点一下有通俗解释。

输入描述

<div data-page-id="OYjFdVI6IoTw4Zx0kfkcUqLxnqg" data-docx-has-block-data="false"> <div style="white-space-collapse:preserve;" class="ace-line ace-line old-record-id-VklHd6WkyowwOPxUTaDcWXJnnNa"> 字符串(只包含字母和数字) </div> </div> <span data-lark-record-data="{"rootId":"OYjFdVI6IoTw4Zx0kfkcUqLxnqg","text":{"initialAttributedTexts":{"text":{"0":"字符串(只包含字母和数字)"},"attribs":{"0":"*0+3*1+1*0+8*1+1"}},"apool":{"numToAttrib":{"0":["author","7226281319222214684"],"1":["author","7115054903550050305"]},"nextNum":2}},"type":"text","referenceRecordMap":{},"extra":{"mention_page_title":{},"external_mention_url":{}},"isKeepQuoteContainer":false,"isFromCode":false,"selection":[{"id":10,"type":"text","selection":{"start":0,"end":13},"recordId":"VklHd6WkyowwOPxUTaDcWXJnnNa"}],"payloadMap":{},"isCut":false}" data-lark-record-format="docx/text" class="lark-record-clipboard"></span>

输出描述

<div data-page-id="OYjFdVI6IoTw4Zx0kfkcUqLxnqg" data-docx-has-block-data="false"> <div style="white-space-collapse:preserve;" class="ace-line ace-line old-record-id-S4m0dE8GPoCGwMxYxpLczrtnnJf"> 最长子串的长度 </div> </div> <span data-lark-record-data="{"rootId":"OYjFdVI6IoTw4Zx0kfkcUqLxnqg","text":{"initialAttributedTexts":{"text":{"0":"最长子串的长度"},"attribs":{"0":"*0+2*1+5"}},"apool":{"numToAttrib":{"0":["author","7115054903550050305"],"1":["author","7226281319222214684"]},"nextNum":2}},"type":"text","referenceRecordMap":{},"extra":{"mention_page_title":{},"external_mention_url":{}},"isKeepQuoteContainer":false,"isFromCode":false,"selection":[{"id":13,"type":"text","selection":{"start":0,"end":7},"recordId":"S4m0dE8GPoCGwMxYxpLczrtnnJf"}],"payloadMap":{},"isCut":false}" data-lark-record-format="docx/text" class="lark-record-clipboard"></span>

示例

示例 1

输入

abC124ACb

输出

4

说明:满足条件的最长子串是C124或者124A,长度都是4

示例 2

输入

a5

输出

2

说明:字符串自身就是满足条件的子串,长度为2

示例 3

输入

aBB9

输出

2

说明:满足条件的子串为B9,长度为2

示例 4

输入

abcdef

输出

-1

说明:没有满足要求的子串,返回-1

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
示例字符串: a b C 1 2 4 A C b C 1 2 4 (长度4) 1 2 4 A (长度4) 要求:子串中只有1个字母,其余都是数字。 字母可以在任意位置(开头、中间或结尾)。 若整个字符串全是字母或全是数字,返回 -1。
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「求满足条件的最长子串的长度」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。