招商银行信用卡IT类测试方向4.9场笔试编程题第一题
招商信用卡的技术笔试总共分为两部分,必答题和选答题。必答题100分。
必答题:包括14道选择每道4分,两道编程题共44分。
选答题:分为选择和问答题,每道题都是一分,题目都是分方向的,分为开发、测试、算法、运维、安全、大数据几个方向。
1.题目
1.给定一个字符串x,小招喵需要判断这个字符串是不是镜像回文字符串?如果一个字符串x与它的倒置字符串y的每一位都是镜像对应,那么这个字符串就是镜像回文字符串。
镜像对应如下所示:
1——1
2——5
3——8
4——7
6——9
小招喵很迷茫,所以他现在要求助你帮他完成这个游戏。
输入描述:
第一行一个数字T表示测试数据组数。
接下来T行每一行有一个字符串S.
保证S只包含字符‘1’-‘9’
输出描述:
对于每组数据,输出一行“YES”或“NO”表示答案。
如果是镜像对称字符串则输出“YES”
示例1:
输入:
3
69
6996
1111
输出:
YES
NO
YES
2.思路如下:
利用字典建立数字对应关系,反转字符串,原字符串和反转字符串对应位置的字符是否满足字典中的映射关系
3.代码如下:
# 招商信用卡第一题
#
import sys
n = int(input())
# 建立一个数字呈现一一映射关系的字典
dic = {'1': '1', '2': '5', '3': '8', '4': '7', '5': '2', '6': '9', '7': '4', '8': '3', '9': '6'}
for i in range(n):
x = sys.stdin.readline().strip()
m = len(x)
res = 0
# 反转字符串 这可是宝藏语句 必须刻在脑子里
y = x[::-1]
for j in range(m):
if x[j] in dic and dic[x[j]] == y[j]:
res += 1
# 满足对应关系的数字个数为res
if res == m:
print('YES')
else:
print('NO')
ps:人生第一次技术岗笔试,超级紧张看到页面都十分惶恐,对OJ的使用一无所知,没关系,一回生,二回熟,不过就是不断的尝试来积累经验同时推动自己不断成长吧,(突然鸡汤)写博客的目的除了做笔记之外,如果有觉得自己很菜的人看到我的博客,就会发现还有太多比他菜的人,估计会受到鼓励hhhhhhh 好久没写博客似乎改版了新的界面倒是清新不少不过有点不适应