在验证解决方案逻辑时需要建议

时间:2016-12-10 10:44:35

标签: python-3.x combinations

我正在尝试一个有竞争力的编程问题,我确信实现它的逻辑是正确的。我会请求其他StackOverflow用户帮助我解决相同的问题

问题如下:

布莱恩制造了他的汽车,并对他应该保留的名称感到困惑。 他向罗曼寻求帮助。罗曼是他的好朋友,建议了很多名字。布莱恩只喜欢名字:

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

  • 满足字符串形式的标准 - C1n C2n C3n:这意味着,首先C1发生n次,然后C2发生n次,然后C3发生n次。例如,xyz,ccaarr,mmmiiiaaa满足标准,但是xyzw,aabbbcccc没有。

鉴于Roman建议的N个名字,如果Brian喜欢这个名字则打印“OK”,如果不喜欢,则打印“Not OK”。

因此,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

1 个答案:

答案 0 :(得分:1)

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

这是一个简单的版本:

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")