Warm tip: This article is reproduced from serverfault.com, please click

其他-从字符串末尾剪切m和n个字母,然后查找匝数以返回原始字符串

(其他 - Cut m and n letters from end of string, then find number of turns to get back original string)

发布于 2020-05-29 09:13:09

问题:给定一个字符串以及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。)

我正在获取除此类单词以外的所有单词的输出,尤其是当同一字母连续出现时。这个你能帮我吗。

Questioner
Sree
Viewed
0
Pygirl 2020-06-02 19:44:59

实际上,你将至少迈出一步,看看它们是否相等。因此,你应该从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)