MagicforestA 2022-06-16 17:54 采纳率: 100%
浏览 52
已结题

matrix数列不重复的代码需要帮助

sample input:
295743861
431865927
876192543
387459216
612387495
549216738
763524189
928671354
154938672

output: Yes

sample input:
195743862
431865927
876192543
387459216
612387495
549216738
763524189
928671354
254938671

output: No

每次input九行数字,每行数字从1到9,顺序打乱,没有重复,这个输入的时候注意就可以了,不用考虑进程序,
然后关键点在这里,举个例子,第一行第二行第三行的前三位和第一列第二列第三列的前三位,正好3*3,这九个
数字从一到九不能有重复,一共有九组这样matrix,只要有一组里面发现有重复数字,最终output就是No,如果九组
都没有,那就是Yes
下面是我写的代码,能够正常运行出output,只是太繁琐,不简练,我有试过用函数套函数的方法,但没有成功,虽然
能够运行成功,但是这是失败的代码,不能这样繁琐
请求协助


```python
sample_input1=input("")
sample_input2=input("")
sample_input3=input("")
sample_input4=input("")
sample_input5=input("")
sample_input6=input("")
sample_input7=input("")
sample_input8=input("")
sample_input9=input("")

def counting(sample_input):
    for i in sample_input:
        if sample_input.count(i) != 1:
            check=False
            return check

new_list1=[]
for i in range(0,len(sample_input1)//3):
    new_list1.append(sample_input1[i])

new_list2=[]
for i in range(0,len(sample_input2)//3):
    new_list2.append(sample_input2[i])


new_list3=[]
for i in range(0,len(sample_input3)//3):
    new_list3.append(sample_input3[i])

lst=new_list1+new_list2+new_list3
new_string=""
row_column_string=new_string.join(lst)
group_check_1=counting(row_column_string)

new_list4=[]
for i in range(3,len(sample_input1)-3):
    new_list4.append(sample_input1[i])

new_list5=[]
for i in range(3,len(sample_input2)-3):
    new_list5.append(sample_input2[i])

new_list6=[]
for i in range(3,len(sample_input3)-3):
    new_list6.append(sample_input3[i])

lst1=new_list4+new_list5+new_list6
new_string1=""
row_column_string1=new_string1.join(lst1)
group_check_2=counting(row_column_string1)

new_list7=[]
for i in range(6,len(sample_input1)):
    new_list7.append(sample_input1[i])

new_list8=[]
for i in range(6,len(sample_input2)):
    new_list8.append(sample_input2[i])

new_list9=[]
for i in range(6,len(sample_input3)):
    new_list9.append(sample_input3[i])

lst2=new_list7+new_list8+new_list9
new_string2=""
row_column_string2=new_string2.join(lst2)
group_check_3=counting(row_column_string2)


new_list10=[]
for i in range(0,len(sample_input4)//3):
    new_list10.append(sample_input4[i])


new_list11=[]
for i in range(0,len(sample_input5)//3):
    new_list11.append(sample_input5[i])

new_list12=[]
for i in range(0,len(sample_input6)//3):
    new_list12.append(sample_input6[i])

lst3=new_list10+new_list11+new_list12
new_string3=""
row_column_string3=new_string3.join(lst3)
group_check_4=counting(row_column_string3)


new_list13=[]
for i in range(3,len(sample_input4)-3):
    new_list13.append(sample_input4[i])

new_list14=[]
for i in range(3,len(sample_input5)-3):
    new_list14.append(sample_input5[i])

new_list15=[]
for i in range(3,len(sample_input6)-3):
    new_list15.append(sample_input6[i])

lst4=new_list13+new_list14+new_list15
new_string4=""
row_column_string4=new_string4.join(lst4)
group_check_5=counting(row_column_string4)

new_list16=[]
for i in range(6,len(sample_input4)):
    new_list16.append(sample_input4[i])

new_list17=[]
for i in range(6,len(sample_input5)):
    new_list17.append(sample_input5[i])

new_list18=[]
for i in range(6,len(sample_input6)):
    new_list18.append(sample_input6[i])

lst5=new_list16+new_list17+new_list18
new_string5=""
row_column_string5=new_string5.join(lst5)
group_check_6=counting(row_column_string5)


new_list19=[]
for i in range(0,len(sample_input7)//3):
    new_list19.append(sample_input7[i])

new_list20=[]
for i in range(0,len(sample_input8)//3):
    new_list20.append(sample_input8[i])

new_list21=[]
for i in range(0,len(sample_input9)//3):
    new_list21.append(sample_input9[i])

lst6=new_list19+new_list20+new_list21
new_string6=""
row_column_string6=new_string6.join(lst6)
group_check_7=counting(row_column_string6)

new_list22=[]
for i in range(3,len(sample_input7)-3):
    new_list22.append(sample_input7[i])

new_list23=[]
for i in range(3,len(sample_input8)-3):
    new_list23.append(sample_input8[i])

new_list24=[]
for i in range(3,len(sample_input9)-3):
    new_list24.append(sample_input9[i])

lst7=new_list22+new_list23+new_list24
new_string7=""
row_column_string7=new_string6.join(lst7)
group_check_8=counting(row_column_string7)

new_list25=[]
for i in range(6,len(sample_input7)):
    new_list25.append(sample_input7[i])

new_list26=[]
for i in range(6,len(sample_input8)):
    new_list26.append(sample_input8[i])

new_list27=[]
for i in range(6,len(sample_input9)):
    new_list27.append(sample_input9[i])

lst8=new_list25+new_list26+new_list27
new_string8=""
row_column_string8=new_string6.join(lst8)
group_check_9=counting(row_column_string8)



counter=0
group_check=[]
group_check.append(group_check_1)
group_check.append(group_check_2)
group_check.append(group_check_3)
group_check.append(group_check_4)
group_check.append(group_check_5)
group_check.append(group_check_6)
group_check.append(group_check_7)
group_check.append(group_check_8)
group_check.append(group_check_9)
for i in range(0,len(group_check)):
    if group_check[i]==False:
        print("No")
        break
    else:
        counter+=1

if counter==9:
    print("Yes")


```

  • 写回答

2条回答 默认 最新

  • 关注

    把每行的各位数字放到各个set集合中,判断各个set集合长度是不是9
    你题目的解答代码如下:

    def fun():
        sets = [set() for i in range(9)]
        setf = [[set() for i in range(3)] for i in range(3)]
        for i in range(9):
            s = input()
            if len(set(s))!=9: #一行数字有重复
                return "No"
            for j,v in enumerate(s):
                sets[j].add(v)
                setf[i//3][j//3].add(v)
    
        for d in sets:
            if len(set(d))!=9: #一列数字有重复
                return "No"
        for f in setf:
            for d in f:
                if len(set(d))!=9: #9宫格数字有重复
                    return "No"
        return "Yes"
    
    print(fun())
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月24日
  • 已采纳回答 6月16日
  • 创建了问题 6月16日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分