首页 > 试题广场 >

牛牛与ABC

[编程题]牛牛与ABC
  • 热度指数:156 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
牛牛有一个只包含A、B、C三个字符的字符串,牛牛想找到其中包含A、B、C这三个字符的最短子串的长度,只不过他不知道该如何解答,所以他想请你帮忙。
给定一个只包含A、B、C三个字符的字符串,返回其中包含A、B、C这三个字符的最短子串的长度,如果不存在该子串,请返回0。
示例1

输入

"ABC"

输出

3

说明

包含A、B、C这三个字符的最短子串的长度为3。 
示例2

输入

"AAA"

输出

0

说明

不存在包含A、B、C这三个字符的子串,返回0。 

备注:


#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 返回其中包含A、B、C这三个字符的最短子串的长度,如果不存在该子串,请返回0。
# @param s string字符串 代表题中所述字符串
# @return int整型
#
class Solution:
    def findMinLength(self , s ):
        # write code here
        if 'A' not in s or 'B'not in s or'C'not in s:
            return 0
        else:
            ans,a,b,c=len(s),-len(s),-len(s),-len(s)
            for i in range(len(s)):
                if s[i] == 'A':
                    a = i
                if s[i] == 'B':
                    b = i
                if s[i] == 'C':
                    c = i
                ans = min(ans, max({a, b, c}) - min({a, b, c}) + 1)
            return ans

发表于 2021-04-23 19:00:47 回复(0)