144. 交错正负数

144. 交错正负数

中文English

给出一个含有正整数和负整数的数组,重新排列成一个正负数交错的数组。

样例

样例 1

输入 : [-1, -2, -3, 4, 5, 6]
输出 : [-1, 5, -2, 4, -3, 6]
解释 : 或者仍和满足条件的答案 

挑战

完成题目,且不消耗额外的空间。

注意事项

不需要保持正整数或者负整数原来的顺序。

class Solution:
    """
    @param: A: An integer array.
    @return: nothing
    """
    '''
    大致思路:
    1.自身循环替换,返回
    '''
    def  rerange(self, A):
        isF = True
        for i in range(len(A)):
            if isF == True: 
                if A[i] < 0:
                    isF = False
                    continue
                else:
                    j = i
                    while j < len(A):
                        if A[j] < 0:
                            temp = A[i] 
                            A[i] = A[j]
                            A[j] = temp
                            isF = False
                            break
                        j += 1
            elif isF == False: 
                if A[i] > 0:
                    isF = True
                    continue
                else:
                    j = i
                    while j < len(A):
                        if A[j] > 0:
                            temp = A[i] 
                            A[i] = A[j]
                            A[j] = temp
                            isF = True
                            break
                        j += 1
        ##最后判断是否同符号
        if len(A) > 2 and (A[-1] > 0 and A[-2] > 0) or (A[-1] < 0 and A[-2] < 0):
            A.insert(0,A.pop())     
        return A
原文地址:https://www.cnblogs.com/yunxintryyoubest/p/12830889.html