找两个相同字符,求它们中间那段的最大长度,两端字符本身不计入。没有任何字符出现两次则输出 −1;两个相同字符紧挨着,中间长度是 0。
给定一个只包含小写英文字母的字符串 s,请你找出两个相同字符之间的最长子字符串,并返回该子字符串的长度。
假设字符串中两个相同字符的位置分别为 i 和 j,其中 i<j,那么这两个字符之间的子字符串为从位置 i+1 到位置 j−1 的连续字符,其长度为:
j−i−1
计算长度时,不包含位置 i 和位置 j 上的这两个相同字符。
如果不存在两个相同的字符,则输出 −1。
输入一行字符串 s,表示给定的字符串。
1≤∣s∣≤300
字符串 s 仅由小写英文字母组成。
输出一个整数,表示两个相同字符之间最长子字符串的长度。
如果字符串中不存在出现至少两次的字符,则输出 −1。
输入
aa
输出
0
说明
两个字符 a 相同,并且它们之间不存在其他字符,因此它们之间的子字符串为空字符串,长度为 0。
输入
abca
输出
2
说明
字符串首尾两个字符均为 a,它们之间的子字符串为 bc,长度为 2。
输入
cbzxy
输出
-1
说明
字符串 s 中所有字符均只出现一次,不存在两个相同字符,因此输出 −1。
输入
cabbac
输出
4
说明
字符串首尾两个字符均为 c,它们之间的子字符串为 abba,长度为 4。
虽然字符 b 之间也可以形成长度为 2 的子字符串,字符 a 之间可以形成长度为 0 的子字符串,但最长长度为 4,因此输出 4。
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册