内部字符串数组交换



我尝试将内部字符串数组值与没有其他数组交换,堆栈...等。
例:

s = [1,2,3,4,5,6,7,8]
output= [1,5,2,6,3,7,4,8]

我的解决方案如下所示,但我认为不是最好的解决方案。有人可以纠正我的代码效率吗?

[python3]
class Solution:
    def inner_number(self, s):
        i=len(s)//2
        index=1
        while i < len(s):
            for j in range(i,index,-1):
                s[j-1],s[j]=s[j],s[j-1]
            i+=1
            index+=2
        return s
s = [1,2,3,4,5,6,7,8,9] 
h = len(s)//2
res= []
if len(s)%2==1:
    res = [j for i in zip(s[:h],s[h:]) for j in i] + [s[-1]]
else:
    res = [j for i in zip(s[:h],s[h:]) for j in i]
print(res)
# output [1, 5, 2, 6, 3, 7, 4, 8, 9]
def inner_swap(input):
    req_length = int(len(input)/2) if len(input) % 2 == 0 else int(len(input)/2)+1
    s1 = input[:req_length]
    s2 = input[req_length:]
    result = [None]*len(input)
    result[::2] = s1
    result[1::2] = s2
    return result

assert inner_swap([1, 2, 3, 4]) == [1, 3, 2, 4]
assert inner_swap([1, 2, 3, 4, 5]) == [1, 4, 2, 5, 3]

最新更新