|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 小蜂队 于 2021-11-24 17:56 编辑
0.虽然学过了,但是让我从新写一遍我可能都还写不出。
- v1 = input("请输入第一个版本号,v1 = ")
- v2 = input("请输入第二个版本号,v2 = ")
-
- n, m = len(v1), len(v2)
- i, j = 0, 0
-
- while i < n or j < m:
- x = 0
- while i < n and v1[i] != '.':
- x = x * 10 + int(v1[i])
- i += 1
- i += 1
- y = 0
- while j < m and v2[j] != '.':
- y = y * 10 + int(v2[j])
- j += 1
- j += 1
- if x > y:
- print("v1")
- break
- elif x < y:
- print("v2")
- break
-
- if x == y:
- print("v1 = v2")
复制代码
1.每一步都看着懂的差不多,要自己写,即使写出来也和小甲鱼老师的代码有所差别。
- plain = input("请输入需要加密的明文:")
- x = input("请输入需要替换的字符:")
- y = input("请输入将要替换的字符:")
-
- # 加密的代码
- if len(x) != len(y):
- print("需要替换的字符数量必须跟将要替换的字符数量一致!")
- else:
- cipher = plain.translate(str.maketrans(x, y))
- print("加密后的密文是:" + cipher)
-
- # 检测冲突的代码
- # flag 变量标志是否退出检测(只要找到一个冲突,就可以直接退出)
- flag = 0
-
- # 如果 x 中存在相同的字符,那么 y 对应下标的字符也应该是相同的
- for each in x:
- if x.count(each) > 1 and flag == 0:
- i = x.find(each)
- last = y[i]
- while i != -1:
- if last != y[i]:
- print("由于替换字符出现冲突,该密文无法解密!")
- flag = -1
- break
-
- i = x.find(each, i+1)
-
- # 如果 y 中存在相同的字符,那么 x 对应下标的字符也应该是相同的
- for each in y:
- if y.count(each) > 1 and flag == 0:
- i = y.find(each)
- last = x[i]
- while i != -1:
- if last != x[i]:
- print("由于替换字符出现冲突,该密文无法解密!")
- flag = -1
- break
-
- i = y.find(each, i+1)
复制代码 |
|