问题:给定一个字符串以及m和n。
输入1:原始字符串
输入2:m(小于字符串的长度):从字符串末尾剪切m个字母,然后添加到字符串的开头。
输入3:n(小于字符串的长度):从上述步骤中获得的字符串末尾切下n个字母,然后添加到该字符串的开头。
此过程继续进行,需要找出获取原始字符串所需的转数。
def harry(str, m, n):
le = len(str)
org = str.upper()
str = str.upper()
turn = 0
for i in str:
str3 = str[-m:] # last n letters
str = str.replace(' ', '')[:-m]
str = str3 + str
print(str)
if org != str:
turn = turn + 1
str4 = str[-n:]
str = str.replace(' ', '')[:-n]
str= str4 + str
print(str)
turn = turn + 1
if org == str:
break
print(turn)
str = input("Enter the string")
m=int(input("Enter the value of m"))
n=int(input("Enter the value of n"))
harry(str, m, n)
获得的输出:
Enter the stringarya
Enter the value of m1
Enter the value of n2
AARY
RYAA
ARYA
2
要获得的原始输出:
3
(需要三回合才能取回原始字符串Arya。)
我正在获取除此类单词以外的所有单词的输出,尤其是当同一字母连续出现时。这个你能帮我吗。
实际上,你将至少迈出一步,看看它们是否相等。因此,你应该从1开始。
请参阅:https://ide.geeksforgeeks.org/Hw4AWx1O95
def harry(str, m, n):
le = len(str)
org = str.upper()
str = str.upper()
turn = 1 # <--------Here
for i in str:
str3 = str[-m:] # last n letters
str = str.replace(' ', '')[:-m]
str = str3 + str
print(str)
if org != str:
turn = turn + 1
str4 = str[-n:]
str = str.replace(' ', '')[:-n]
str= str4 + str
print(str)
if org == str:
break
turn = turn + 1 #< --------------- Here
print(turn)
str = input("Enter the string\n")
m=int(input("Enter the value of m\n"))
n=int(input("Enter the value of n\n"))
harry(str, m, n)