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

python逻辑_python逻辑题

最近开始在找工作了,昨天接了一家公司的笔试。形式是线上笔试。笔试题目是逻辑题。

题目如下:

李雷和韩梅梅坐前后排,上课想说话怕被老师发现,所以改为传纸条。为了不被老师发现他们纸条上写的是啥,,他们约定了如下方法传递信息:

将26个大写英文字母,外加空格,一共27个字符分成三组,每组9个。也就是ABCDEFGHI是第一组,JKLMNOPQR是第二组,STUVWXYZ是第三组(此处用代表空格)。

先根据月份数m,一整个分组为单位进行左移,移动(m-1)次。

然后根据日期数d,对每个分组内的字符进行循环左移,移动(n-1)次。

以3月8日为例,首先移动分组3-1=2次,变成:

STUVWXYZ* ABCDEFGHI JKLMNOPQR21

然后每组内字符移动8-1 = 7次,最终编码为:

Z*STUVWXY HIABCDEFG QRJKLMNOP

对于要传递的信息中的每个字符,用组号和组内序号两个数字来表示。

如果在3月8日传递信息 “HAPPY”,那么H位于第2组的第1个,A位于第二组 第3个 …一次类推,纸条上会写成:

21,23,39,39,19

输入要求:

每个输入包含两行。第一行使用空格分隔的两个数字,第一个数字是月份,第二个数字是日期。输入保证是一个合法日期。

第二个行为需要编码的字符串,仅由A~Z和空格组成,长度不超过1024个字符

输出规范:

对每个输入,打印对应的编码,数字之间用空格分隔,每个输出占一行。

输入示例:

1 1

HI

输出示例:

18 19

解题代码:

item_1 = ['A','B','C','D','E','F','G','H','I']

item_2 = ['J','K','L','M','N','O','P','Q','R']

item_3 = ['S','T','U','V','W','X','Y','Z','*']

big_month=[1,3,5,7,8,10,12]

small_month = [4,6,9,11]

month = 0

day = 0

while True:

days = 0

date = input('请输入日期')

date = date.split(' ')

if int(date[0]) <= 0 or int(date[0]) >= 12:

print('输入有误,请重新输入')

continue

if int(date[0]) in big_month:

days = 31

elif int(date[0]) in small_month:

days = 30

elif int(date[0]) == 2:

days = 28

else:

print('输入有误,请重新输入')

continue

if int(date[1]) <=0 or int(date[1]) >= days:

print('输入有误请重新输入')

continue

month = int(date[0])

day = int(date[1])

break

for i in range(month-1):

item_1,item_2,item_3=item_2,item_3,item_1

for i in range(day-1):

item_1.append(item_1.pop(0))

item_2.append(item_2.pop(0))

item_3.append(item_3.pop(0))

a = ''.join(item_1)

b = ''.join(item_2)

c = ''.join(item_3)

print(a,b,c)

num = ''

while True:

codes = input('请输入信息')

for i in codes:

if not i.isupper() and i != ' ':

print('输入有误,请重新输入')

num = ''

break

if i == ' ':

i = '*'

for l in item_1:

if i == l:

num += '1'+str((item_1.index(l)+1))+' '

break

for k in item_2:

if i == k:

num += '2' + str((item_2.index(k)+1))+' '

break

for n in item_3:

if i == n:

num += '3' + str(item_3.index(n)+1)+' '

break

break

print(num)

相关文章:

  • python语言求素数_用python判断一个数是否是素数的方法
  • 统计高于平均分的人数python_python3 下载 以及 练习1
  • cv::imread导致段错误_OGG启动报错:不能创建共享内存段
  • opengl场景代码_实战篇使用Native OpenGL渲染Unity场景
  • python中dtype是object是什么意思_python – Pandas:将dtype’object’转换为int
  • 人脸比对软件_开源推荐 | 可实现门禁、AI测温敏捷开发的人脸识别应用套件
  • coursera python证书_IBM数据科学证书 | 你想要的一站式新手入门课!
  • 前后端分离项目如何部署_利用dockercompsoe部署前后端分离的项目
  • python天气图形化显示_python可视化爬虫界面之天气查询
  • 电脑控制iphone_iPhone屏幕镜像怎么用?
  • python是用什么语言开发的_为什么Python不是编程语言的未来
  • python 进度条_Python实例1之如何把进度条玩出花儿
  • qcustomplot绘制动态曲线_matplotlib库:动态图
  • qt做拖拉控件功能_Qt控件编辑功能
  • qt 相对路径_Qt 国际化(上)
  • hexo+github搭建个人博客
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • const let
  • Django 博客开发教程 8 - 博客文章详情页
  • HashMap剖析之内部结构
  • java8 Stream Pipelines 浅析
  • Java比较器对数组,集合排序
  • js作用域和this的理解
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Nacos系列:Nacos的Java SDK使用
  • ng6--错误信息小结(持续更新)
  • Vue官网教程学习过程中值得记录的一些事情
  • 创建一种深思熟虑的文化
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 近期前端发展计划
  • 力扣(LeetCode)21
  • 那些被忽略的 JavaScript 数组方法细节
  • 前言-如何学习区块链
  • 异步
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • #162 (Div. 2)
  • #pragma data_seg 共享数据区(转)
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (排序详解之 堆排序)
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (算法二)滑动窗口
  • (转载)Google Chrome调试JS
  • .Net 4.0并行库实用性演练
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .Net Redis的秒杀Dome和异步执行
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .Net 应用中使用dot trace进行性能诊断
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .net下的富文本编辑器FCKeditor的配置方法
  • [ NOI 2001 ] 食物链
  • []常用AT命令解释()