蓝桥 卷“兔”来袭编程竞赛专场-03破解三角形密码 题解

这篇具有很好参考价值的文章主要介绍了蓝桥 卷“兔”来袭编程竞赛专场-03破解三角形密码 题解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

赛题介绍

挑战介绍

三角形密码指的是将一串字符串按照正直角三角形的形状排列,传递的信息隐藏在每一行的最后一个字符,然后将所有的行的最后一个字符依次连接,就是需要传递的信息。

例如加密后的字符串是:我们爱的是蓝色的心桥

将加密字符串按照正直角三角形填充后如下:

提取每一行的最后一个字符,然后连起来就是:我爱蓝桥,也就是传递的信息。

挑战目标

补充文件 triangle.pytriangle_decryption(text) 函数中的 TODO 部分,使其实现我们需要的功能:

  • 输入一段字符串,使用正直角三角形进行破解,返回破解的内容。
  • 如果最后一行字符串不足三角形的边长,则获取最后一个字符。例如密文“我们爱的你”,对应的明文是“我爱你”。
  • 如果输入的字符串前后有空格,请先去掉空格再使用正直角三角形破解。字符串中间的空格不需要去掉。
  • 如果输入的内容不是字符串或字符串为空则返回 None
def triangle_decryption(text: str) -> str:
    """TODO
    """
    decryption_text : str = ''
    return decryption_text

挑战要求

  • 题目需使用 Python3 完成,不能使用标准库和第三方库。
  • 函数传入 text 为字符串类型,可能为空、None 等值。
  • 不得修改文件路径、文件名 triangle.py 以及函数名 triangle_decryption(text)
  • 请只保留文件 triangle.py 及文件中函数,不要添加测试或执行代码,避免检测时出错。
  • 线上环境调试代码时,请使用 python3 triangle.py 命令调用 Python3。

参考样例

# 样例 1
text = "我们爱的是蓝色的心桥"; decryption_text = "我爱蓝桥"
# 样例 2
text = "我们爱的你"; decryption_text = "我爱你"
# 样例 3
text = " 我们爱的是蓝色的心桥"; decryption_text = "我爱蓝桥"
# 样例 4
text = "我 爱你"; decryption_text = "我爱你"
# 样例 5
text = None; decryption_text = None

注意:最终实现效果以完全满足要求为准,而不是仅满足如上样例。


题解

解题思路

简单的模拟题

  1. 要注意对传入参数类型的检查,包括空字符串等情形。
  2. 当输入仅有一个字符的时候,原样返回即可。
  3. 需要考虑好对边界情况的判断。
  4. 最后使用join方法将列表拼接为字符串返回即可。
def triangle_decryption(text: str) -> str:
    """TODO
    """
    result = []
    i = 2
    index = 0
    if text == '' or None or not isinstance(text, str):
        return None
    text = text.strip()
    if len(text) == 1:
        return text
    while index < len(text):
        result.append(text[index])
        index = index + i
        i = i + 1
        if index + 1 >= len(text):
            result.append(text[-1])
            break
    decryption_text: str = "".join(result)
    return decryption_text

题目来源:蓝桥破解三角形密码文章来源地址https://www.toymoban.com/news/detail-415113.html

到了这里,关于蓝桥 卷“兔”来袭编程竞赛专场-03破解三角形密码 题解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 蓝桥杯第十一届省赛——数字三角形(python组)

    题目:数字三角形 【问题描述】: 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最 大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边

    2023年04月10日
    浏览(49)
  • 【算法挨揍日记】day03——双指针算法_有效三角形的个数、和为s的两个数字

       611. 有效三角形的个数 https://leetcode.cn/problems/valid-triangle-number/ 给定一个包含非负整数的数组  nums  ,返回其中可以组成三角形三条边的三元组个数。 本题是一个关于三角形是否能成立的题目,首先我们假设三角形的三边(a,b,c),我们要保证两边之和大于第三边    题

    2024年02月12日
    浏览(48)
  • 【编程题】有效三角形的个数

    给定一个包含非负整数的数组 nums ,返回其中可以组成三角形三条边的三元组个数。 示例1: 输入: nums = [2,2,3,4] 输出: 3 **解释:**有效的组合是: 2,3,4 (使用第一个 2) 2,3,4 (使用第二个 2) 2,2,3 示例2: 输入: nums = [4,2,3,4] 输出: 4 构成三角形的条件 :任意两条边之和大于第三边,其

    2024年02月11日
    浏览(45)
  • 用动态规划算法编程实现数字三角形问题

    如下所示为一个数字三角形: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 请编一个程序计算从顶至底的某一条路径,使该路径所经过的数字的总和最大。 思路:建立两个二位数组m(用来存储数字三角形),sum(用来存储数字三角形中每一个值得路径值);sum[i] [j]从最后一行开始存储; 如果当前

    2024年02月11日
    浏览(63)
  • C/C++字符三角形 2020年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

    目录 C/C++字符三角形 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 2020年12月 C/C++编程等级考试一级编程题 给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。 输入描述: 输入只有一行

    2024年02月08日
    浏览(72)
  • 用python写九九乘法表(左上三角、左下三角、右上三角、右下三角、正三角形、倒三角形格式)

    1.左上三角格式:   2.左下三角格式:   3.右上三角格式:     4.右下角格式:     5.倒三角格式:      

    2024年02月11日
    浏览(60)
  • css实现圆角三角形,圆角三角形的实现

    今天给大家带来一个如何实现圆角三角形的方案,这个方案虽然可以实现,但是也是借助拼凑等方式来实现的,假如想一个div来实现圆角三角形,还是比较困难的。之前文章讲了如何实现对话框,里面介绍了三角形的实现方式。今天讲讲如何实现圆角三角形。 想要生成一个带

    2024年02月09日
    浏览(53)
  • C语言程序设计:输入一个三角形的三条边长,求出三角形的面积。

    已知三角形的三边长a,b,c,则该三角形的面积公式为:           area=  其中s = (a+b+c)/2

    2024年02月06日
    浏览(61)
  • OpenCV项目开发实战-- 将一个三角形变形为另一个三角形 ( C++ / Python )代码实现

     文末附基于Python和C++两种方式实现的测试代码下载链接 图 1:左图中蓝色三角形内的所有像素都已转换为右图中的蓝色三角形。 在本教程中,我们将看到如何将图像中的单个三角形变形为不同图像中的另一个三角形。 在计算机图形学中,人们一直在处理扭曲三角形,因为任

    2024年02月09日
    浏览(86)
  • CSS 画三角形

    1、transform: rotate + overflow: hidden 就是利用BFC的特性,在封闭的盒子里面,以图形的左下角(left bottom)作为旋转中心,进行旋转,把超出部分隐藏、 2、clip-path 剪切 clip-path 可以将一个容器裁剪成任何我们想要的样子 3、border + transparent 设置一个宽高为0的盒子,用边框大小来控

    2024年01月25日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包