当前位置: 首页 > article >正文

新年算法题:矩阵对称性检测

引言:

2025年的新年钟声即将敲响,作为一名算法爱好者,你将帮助圣诞老人完成一项重要任务——判断新年的密码是否具有对称性。这个问题简单但充满趣味,快来挑战吧!


题目背景

在“极光之城”,圣诞老人准备在新年的钟声敲响时点亮极光。为了启动装置,他需要输入一个密码。密码的输入面板是一个由3x3按钮组成的矩阵。矩阵中每个按钮的状态可能是x(按钮被按下)或.(按钮未被按下)。

传说中,只有对称的密码才能触发极光,点亮夜空的烟花秀。你的任务是判断输入的密码矩阵是否具有中心对称性。


任务描述

输入格式

  • 一个 3x3 的字符矩阵,每行包含3个字符(x.)。

输出格式

  • 如果矩阵是中心对称的,输出:NEW YEAR CELEBRATION!

  • 否则,输出:TRY AGAIN!

对称性定义: 矩阵的任意一个位置 (i, j) 的状态必须和它中心对称位置 (2 - i, 2 - j) 的状态一致。


示例

输入

x.x
.x.
x.x

输出

NEW YEAR CELEBRATION!

解释: 矩阵以中心为对称点,符合条件。


输入

x.x
x..
.x.

输出

TRY AGAIN!

解释: 矩阵不符合对称性条件。


Python代码实现

以下是实现该题的Python代码:

def is_symmetric(matrix):
    # 检查每个位置的字符是否和对称位置的字符一致
    for i in range(3):
        for j in range(3):
            if matrix[i][j] != matrix[2 - i][2 - j]:
                return False
    return True

# 输入3x3矩阵
matrix = []
print("Enter the 3x3 password matrix (use 'x' for pressed and '.' for unpressed):")
for _ in range(3):
    row = input().strip()
    matrix.append(row)

# 判断是否对称,并输出结果
if is_symmetric(matrix):
    print("NEW YEAR CELEBRATION!")
else:
    print("TRY AGAIN!")

代码解析
  1. 核心函数 is_symmetric

    • 遍历矩阵的每一个元素 (i, j)

    • 检查 (i, j) 是否与中心对称位置 (2 - i, 2 - j) 的值相等;

    • 如果存在不匹配的情况,直接返回 False

    • 如果所有元素匹配,则返回 True

  2. 主程序逻辑

    • 提示用户输入 3x3 矩阵;

    • 将每行输入存入 matrix 列表;

    • 调用 is_symmetric 函数判断是否符合对称性;

    • 根据返回值输出对应结果。


运行说明

运行程序后,输入 3 行,每行包含 3 个字符,表示矩阵的密码。例如:

x.x
.x.
x.x

程序会输出:

NEW YEAR CELEBRATION!

题目拓展
  1. 矩阵规模拓展:可以尝试支持更大的矩阵(如 5x5、7x7),判断其是否具有中心对称性。

  2. 图形可视化:将矩阵密码的对称性通过图形界面展示,增强趣味性。

  3. 节日元素增强:将判断成功后的输出改为节日图案或文字动画。


总结

这是一个简单的算法题,但通过节日背景赋予了它更多趣味性。通过解决该问题,不仅可以磨炼对矩阵的遍历和索引操作,还能提升对对称性概念的理解。希望大家通过这道题感受到编程的乐趣,也祝大家新年快乐!

快来试试吧!用你的代码点亮新年的极光! 🌟


http://www.kler.cn/a/462978.html

相关文章:

  • 1.1.1 认识时间复杂度
  • AWS EMR基础知识
  • K8s高可用集群之Kubernetes集群管理平台、命令补全工具、资源监控工具部署、常用命令
  • 探索Wiki:开源知识管理平台及其私有化部署
  • 默认ip无法访问,利用dhcp功能获取ip进行访问的方法
  • Oracle exp和imp命令导出导入dmp文件
  • Linux 内核学习(3) --- 内核中断机制
  • 单片机-- 51-keil使用查看空间占用
  • C++ 设计模式:状态模式(State Pattern)
  • FristiLeaks_1.3靶场渗透
  • [羊城杯 2024]1z_misc
  • [创业之路-230]:《华为闭环战略管理》-5-华为的组织架构与业务架构是不同的,组织架构是为业务架构服务
  • Docker网络与数据卷持久化
  • 三、AI知识(自然语言处理)
  • 记录uniapp组件swiper自适应高度
  • 期权懂|个股期权的流动性如何?
  • 生成埃里克卡特曼人工智能语音听起来像他或配音视频
  • PyTorch transpose、permute、view和einops.rearrange
  • LeetCode 热题 100_二叉树的直径(40_543_简单_C++)(二叉树;递归)
  • pip安装paddle失败
  • 【AIGC篇】“智” 造元宇宙新境:AIGC 于虚拟现实的奇幻征途
  • 亚马逊国际站商品爬虫:Python实战指南
  • 【操作系统进程与线程管理:从PCB到多线程并发编程】
  • 基本语法与数据结构:全面掌握 Java 的基础
  • STM32使用UART发送字符串与printf输出重定向
  • 自动驾驶---Tesla FSD Version 13