【问题描述】
对于一个字母矩阵,我们称矩阵中的一个三升序列是指在矩阵中找到三个字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这三个字母从左向右看、或者从上向下看是递增的。

例如,如下矩阵中
YQPD
BKEZ
AFYV

有BKZ、BEZ、AFY、AFV、AKP、DEF 等 6 个三升序列。注意当三个字母是从左下到右上排列时,从左向右看和从上向下看是不同的顺序。

对于下面的 30 行 50 列的矩阵,请问总共有多少个三升序列?

VLPWJVVNNZSWFGHSFRBCOIJTPYNEURPIGKQGPSXUGNELGRVZAG
SDLLOVGRTWEYZKKXNKIRWGZWXWRHKXFASATDWZAPZRNHTNNGQF
ZGUGXVQDQAEAHOQEADMWWXFBXECKAVIGPTKTTQFWSWPKRPSMGA
BDGMGYHAOPPRRHKYZCMFZEDELCALTBSWNTAODXYVHQNDASUFRL
YVYWQZUTEPFSFXLTZBMBQETXGXFUEBHGMJKBPNIHMYOELYZIKH
ZYZHSLTCGNANNXTUJGBYKUOJMGOGRDPKEUGVHNZJZHDUNRERBU
XFPTZKTPVQPJEMBHNTUBSMIYEGXNWQSBZMHMDRZZMJPZQTCWLR
ZNXOKBITTPSHEXWHZXFLWEMPZTBVNKNYSHCIQRIKQHFRAYWOPG
MHJKFYYBQSDPOVJICWWGGCOZSBGLSOXOFDAADZYEOBKDDTMQPA
VIDPIGELBYMEVQLASLQRUKMXSEWGHRSFVXOMHSJWWXHIBCGVIF
GWRFRFLHAMYWYZOIQODBIHHRIIMWJWJGYPFAHZZWJKRGOISUJC
EKQKKPNEYCBWOQHTYFHHQZRLFNDOVXTWASSQWXKBIVTKTUIASK
PEKNJFIVBKOZUEPPHIWLUBFUDWPIDRJKAZVJKPBRHCRMGNMFWW
CGZAXHXPDELTACGUWBXWNNZNDQYYCIQRJCULIEBQBLLMJEUSZP
RWHHQMBIJWTQPUFNAESPZHAQARNIDUCRYQAZMNVRVZUJOZUDGS
PFGAYBDEECHUXFUZIKAXYDFWJNSAOPJYWUIEJSCORRBVQHCHMR
JNVIPVEMQSHCCAXMWEFSYIGFPIXNIDXOTXTNBCHSHUZGKXFECL
YZBAIIOTWLREPZISBGJLQDALKZUKEQMKLDIPXJEPENEIPWFDLP
HBQKWJFLSEXVILKYPNSWUZLDCRTAYUUPEITQJEITZRQMMAQNLN
DQDJGOWMBFKAIGWEAJOISPFPLULIWVVALLIIHBGEZLGRHRCKGF
LXYPCVPNUKSWCCGXEYTEBAWRLWDWNHHNNNWQNIIBUCGUJYMRYW
CZDKISKUSBPFHVGSAVJBDMNPSDKFRXVVPLVAQUGVUJEXSZFGFQ
IYIJGISUANRAXTGQLAVFMQTICKQAHLEBGHAVOVVPEXIMLFWIYI
ZIIFSOPCMAWCBPKWZBUQPQLGSNIBFADUUJJHPAIUVVNWNWKDZB
HGTEEIISFGIUEUOWXVTPJDVACYQYFQUCXOXOSSMXLZDQESHXKP
FEBZHJAGIFGXSMRDKGONGELOALLSYDVILRWAPXXBPOOSWZNEAS
VJGMAOFLGYIFLJTEKDNIWHJAABCASFMAKIENSYIZZSLRSUIPCJ
BMQGMPDRCPGWKTPLOTAINXZAAJWCPUJHPOUYWNWHZAKCDMZDSR
RRARTVHZYYCEDXJQNQAINQVDJCZCZLCQWQQIKUYMYMOVMNCBVY
ABTCRRUXVGYLZILFLOFYVWFFBZNFWDZOADRDCLIRFKBFBHMAXX

解法:按题目要求将横着、竖着、从右上到左下、从左下到右上、从左上到右下取出来(注意从右下到左上不符合题目从左到右、从上到下的要求),然后分别取出每一个的三个字母的所有组合,判断是否是递增即可。

from itertools import combinationss = '''那个巨长的字符串,注意不能有多余的空行'''lis = s.split('\n')lis2 = []
lis2 += lislis2 += [''.join([i[j] for i in lis]) for j in range(50)]  #竖着lis2 += [''.join([lis[j][i - j] for j in range(i + 1) if j < 30 and i - j < 50]) for i in range(2, 77)]  #右上到左下
lis2 += [''.join([lis[j][i - j] for j in range(i + 1) if j < 30 and i - j < 50][::-1]) for i in range(2, 77)]  #左下到右上lis = [i[::-1] for i in lis]
lis2 += [''.join([lis[j][i - j] for j in range(i + 1) if j < 30 and i - j < 50]) for i in range(2, 77)]  #左上到右下ans = 0
for i in lis2:for j in combinations(i, 3):if j[0] < j[1] < j[2]:ans += 1
print(ans)

[蓝桥杯] 三升序列 python解法相关推荐

  1. [蓝桥杯]三升序列(Python实现)

    题目: 对于一个字母矩阵,我们称矩阵中的一个三升序列是指在矩阵中找到三个字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这三个字母从左向右看.或者从上向下看是递增的. 例如,如下矩阵中 YQ ...

  2. C/C++蓝桥杯三升序列

    本题答案可能是错的,我算出的是180414,和很多博主的答案不一样,我也不太懂哪里有问题,大家可以探讨一下 题目描述 对于一个字母矩阵,我们称矩阵中的一个三升序列是指在矩阵中找到三个字母,它们在同一行 ...

  3. 蓝桥杯 三升序列(java)

    试题 A: 递增序列 本题总分:5 分 [问题描述] 对于一个字母矩阵,我们称矩阵中的一个递增序列是指在矩阵中找到两个 字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这两个字母从左向 右看 ...

  4. 蓝桥杯每日一题(22):三升序列(python)

    Topic [问题描述] 对于一个字母矩阵,我们称矩阵中的一个三升序列是指在矩阵中找到三个字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这三个字母从左向右看.或者从上向下看是递增的. 例如 ...

  5. 三升序列(蓝桥杯真题)——python

    题目如下: 对于一个字母矩阵,我们称矩阵中的一个三升序列是指在矩阵中找到三个字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这三个字母从左向右看.或者从上向下看是递增的. 例如,如下矩阵中 ...

  6. 2019第十届蓝桥杯A组决赛(国赛)A题(三升序列)

    2019第十届蓝桥杯A组决赛(国赛)A题(三升序列) 输入: VLPWJVVNNZSWFGHSFRBCOIJTPYNEURPIGKQGPSXUGNELGRVZAG SDLLOVGRTWEYZKKXNK ...

  7. 蓝桥杯第十届国赛C++研究生组 试题 A: 三升序列

    试题 A: 三升序列 [问题描述] 对于一个字母矩阵,我们称矩阵中的一个三升序列是指在矩阵中找到三个 字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这三个字母从左向 右看.或者从上向下看是 ...

  8. 蓝桥杯:三升排序——————Python

    题目 试题 A: 三升序列 本题总分:5 分 [问题描述] 对于一个字母矩阵,我们称矩阵中的一个三升序列是指在矩阵中找到三个字母,它们在同一行,同一列,或者在同一 45 度的斜线上,这三个字母从左向右 ...

  9. [蓝桥杯]横向打印二叉树 Python满分解法

    [蓝桥杯]横向打印二叉树 Python满分解法 #树的结点类定义 class Node:def __init__(self,left=0,right=0,w=0,line=0,leng=0):self ...

最新文章

  1. ubuntu16.04: mininet下使用ryu当做控制器
  2. 科学就是要勇于承认错误:十大错误科学结论盘点
  3. hands-on Machine Learning with sklearn
  4. php pdo操作mysql_PHP操作数据库详细(PDO)
  5. 正确理解Python函数是第一类对象
  6. NTKO控件安装:“文件存取错误”问题
  7. easyui-combobox之setText与setValue先后之分
  8. 如何在html中插入带圈数字,Excel2013中带圈数字怎么输入
  9. 使用Poedit汉化wordpress主题和插件
  10. 【2016NOIP十连测】【test4】【状压DP】【容斥原理】巨神兵
  11. PS网页设计教程XVII——在Photoshop中设计创意组合网页
  12. 在家赚钱,收藏好这三个兼职
  13. PSD的网页模版PS切图到网页生成全攻略
  14. 《咸鱼分享》DNS轮询
  15. 程序员最该买的十本书
  16. 少年自学python笔记_自学python笔记(一)
  17. MySQL---DDL语句、DML语句与DCL语句
  18. TCP/IP协议栈Lwip的设计与实现:之一
  19. 博通Broadcom系列网卡连接受限问题
  20. gurobi证书过期了怎么办

热门文章

  1. C++ 程序编译过程
  2. 上海理工大学854C语言真题,2018年上海理工大学医疗器械与食品院854C程序设计考研核心题库...
  3. 哪些自媒体平台收益高,每个自媒体平台的优势,新手抓紧收藏
  4. 用ping ,mtr ,traceroute 进行网络丢包分析
  5. 九招使用 Telegram必学,使用Telegram 必看实用功能
  6. 转:https://mp.weixin.qq.com/s/O_D_FVRIIII1wqq4jGZqHA
  7. 大数据就业前景,分析的太到位了
  8. luogu4188 [USACO18JAN]Lifeguards S
  9. 天气预报API,你想要的它都有
  10. linux多网卡的路由模式和桥接模式设置方法