|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
答案代码
- # 动手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")
复制代码
我的代码
- # 动手0
- v1 = input("Verson1:")
- v2 = input("Verson2:")
- len_max = max(len(v1),len(v2))
- if v1[0] > v2[0]:
- print('v1')
- elif v2[0]>v1[0]:
- print('v2')
- else :
- for i in range(1,len_max):
- if v1[i] == v2[i] == '.':
- continue
- else:
- if v1[i] > v2[i]:
- print('v1')
- break
- else :
- print('v2')
- break
复制代码
答案动手1
- # 动手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)
复制代码
我的代码动手1
- # 动手1
- str0 = input("请输入需要加密的:")
- str1 = input("请输入需要替换的:")
- str2 = input("请输入替换字符的:")
- table1 = str.maketrans(str1,str2)
- table2 = str.maketrans(str2,str1)
- if len(str1) != len(str2):
- print("替换的字符数量应当一致")
- else:
- str_ans = str0.translate(table1)
- if str_ans.translate(table2) == str0:
- print(str_ans)
- else :
- print("出现冲突,解密失败")
复制代码
目前从结果来看,好像没有什么问题,但是不知道有没有那种本质性的问题,来请教一下,谢谢!
本帖最后由 jackz007 于 2025-2-28 17:18 编辑
楼主代码 【#动手0】 运行实况:
- D:\[exercise]\Python>python x.py
- Verson1:1.2.3.4
- Verson2:1
- Traceback (most recent call last):
- File "D:\[exercise]\Python\x.py", line 10, in <module>
- if v1[i] == v2[i] == '.':
- ~~^^^
- IndexError: string index out of range
- D:\[exercise]\Python>
复制代码
参考代码:
- v1 = list(map(int , input("请输入第一个版本号,v1 = ") . split('.')))
- v2 = list(map(int , input("请输入第二个版本号,v2 = ") . split('.')))
- for i in range(max(len(v1) , len(v2))) :
- x1 = v1[i] if i < len(v1) else 0
- x2 = v2[i] if i < len(v2) else 0
- if x1 != x2 : break
- print('v1 > v2') if x1 > x2 else print('v2 > v1') if x2 > x1 else print('v1 = v2')
复制代码
|
|