about summary refs log tree commit diff
path: root/users/wpcarro/scratch/data_structures_and_algorithms/string-reverse.py
blob: 8b4cdac1c271b6deafc730a053accfdbc3fd817c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# swap :: Int -> Int -> [Char] -> IO ()
def swap(ia, iz, xs):
    # handle swap when ia == iz
    assert ia <= iz
    xs[ia], xs[iz] = xs[iz], xs[ia]
    

# reverse :: [Char] -> IO ()
def reverse(xs):
    ia = 0
    iz = len(xs) - 1

    while ia <= iz:
        swap(ia, iz, xs)
        ia += 1
        iz -= 1

x = list("superduperpooper")
reverse(x)
print(x)
print("Tests pass")