反转字符串的第一和第二部分,并将它们一起返回

2024-09-28 01:26:24 发布

您现在位置:Python中文网/ 问答频道 /正文

如何定义一个函数,将字符串拆分为两个部分,并将其反转?如果字符串为奇数,则保留中间字符(余数)

例如:

revStr(“ “)
revStr(“xy“)
revStr(“wxyz“)
revStr(“vwxyz“)
revStr(“uvwxyz“)
revStr(“tuvwxyz”)

将输出:


xy
xwzy
wvxzy
wvuzyx
vutwzyx

我已经试过了,但我甚至不能让偶数字符串正确翻转

def revStr(string):
    output = " "
    start = 0 
    if len (string) % 2 == 0:
        x = string[start:start//2] 
        y = x[::-1]
        string = x+y
    return(string)
    
printrevStr("abcdef")

需要一些指导或想法,提前感谢!如果有什么我可以澄清的,请告诉我


Tags: 函数字符串string定义字符start奇数xy
3条回答
def rev_str(string):
    mid_point = len(string) // 2
    if len(string) % 2 == 0:
        return string[0:mid_point][::-1] + string[mid_point:][::-1]
    else:
        return string[0:mid_point][::-1] + string[mid_point] + string[mid_point + 1:][::-1]


if __name__ == '__main__':
    print(rev_str(" "))
    print(rev_str("xy"))
    print(rev_str("wxyz"))
    print(rev_str("vwxyz"))
    print(rev_str("uvwxyz"))
    print(rev_str("tuvwxyz"))

输出:

 
xy
xwzy
wvxzy
wvuzyx
vutwzyx
def reverse_string(string):
    length = len(string)
    
    mid = length//2
    # seperating in 3 parst
    first_half, second_half, middle = None, None, None
    
    # seperating string into first half, second half and mid based on length
    if length%2==1:
        first_half = string[:mid]
        second_half = string[mid+1:]
        middle = string[mid]
    else:
        first_half = string[:mid]
        second_half = string[mid:]
        
    # reversing the first half and second half
    first_half_reverse = first_half[::-1]
    second_half_reverse = second_half[::-1]
    
    # assembling the final result together
    final_result = None
    if middle is not None:
        final_result = first_half_reverse + middle + second_half_reverse
    else:
        final_result = first_half_reverse + second_half_reverse
    
    return final_result

你搞砸的是中间的索引部分,得到了两半。在这里,你可以做的是取一个中间索引值=len//2,然后取一半,这样一半到中间,另一半从中间索引开始。一旦你有了两半,你可以简单地用x[:-1]等将它们反向打印

def revStr(string):
    mid=len(string)//2
    if len(string)%2 != 0:
        x=string[:mid]
        middle=string[mid]
        y=string[mid+1:]
        print(x[::-1],middle,y[::-1],sep='')
    else:
        x=string[:mid]
        y=string[mid:]
        print(x[::-1],y[::-1],sep='')

revStr("abcdef")

相关问题 更多 >

    热门问题