验证解决方案逻辑所需的建议



我正在尝试一个竞争性编程问题,我相信实现此问题的逻辑是正确的。我会请求其他Stackoverflow用户的帮助,以帮助我了解相同的

问题如下:

布莱恩(Brian)建造了他的汽车,并为他应该保留什么名字感到困惑。他向罗马寻求帮助。罗马是他的好朋友,提出了很多名字。布莱恩只喜欢:

  • 由三个不同的字符组成,例如C1,C2和C3

  • 满足了形式的字符串是-c1n c2n c3n的标准:这意味着首先发生c1,然后发生c2,然后发生n次,然后发生c3。例如,xyz,ccaarr,mmmiiiaaa满足了标准,但是xyzw,aabbbcccc却没有。

给定的n个名称由罗马建议,如果布莱恩(Brian)喜欢这个名字,则打印"确定",如果他不喜欢"。

所以为此的Python代码如下 -

no_of_cases=int(input())
for value in range(no_of_cases):
dictionary={}
car_name=input()
for value in car_name:
    dictionary[value]=dictionary.get(value,0)+1
if len(dictionary)==3:
    count_list=list(dictionary.values())
    name_list=list(dictionary.keys())
    if ((count_list[0]==count_list[1]==count_list[2])):
        c1=name_list[0]*count_list[0]+name_list[1]*count_list[0]+name_list[2]*count_list[0]
        c6=name_list[0]*count_list[0]+name_list[2]*count_list[0]+name_list[1]*count_list[0]
        c2=name_list[1]*count_list[0]+name_list[2]*count_list[0]+name_list[0]*count_list[0]
        c5=name_list[1]*count_list[0]+name_list[0]*count_list[0]+name_list[2]*count_list[0]
        c3=name_list[2]*count_list[0]+name_list[0]*count_list[0]+name_list[1]*count_list[0]
        c4=name_list[2]*count_list[0]+name_list[1]*count_list[0]+name_list[2]*count_list[0]
        if car_name==c1 or car_name==c2 or car_name==c3 or car_name== c4 or car_name==c5 or car_name==c6:
            print("OK")
        else:
            print("Not OK")
    else:
        print("Not OK")
else:
    print("Not OK")

样本输入/输出 -

bbbrrriii-OK

brian-NOT OK

您的逻辑是正确的,但您的逻辑已经复杂,即使这样,它也会产生正确的输出。

这是一个简单的版本:

no_of_cases=int(input())
for value in range(no_of_cases):
    car_name=input()
    name_length = len(car_name)
    correct = True if name_length%3==0 else False
    if correct:
        each_length = name_length//3
        first,mid,last=car_name[0],car_name[each_length],car_name[-1]
        if (first!=last) and (first!=mid) and (last!=mid):
            if car_name!=(first*each_length+mid*each_length+last*each_length):
                correct=False
        else:
            correct=False
    if correct:
        print("Ok")
    else:
        print("Not Ok")

最新更新