### Reversing stringsΒΆ

The easiest way to reverse a string is using slicing notation.

In [1]:
def reverse_str(s):
return s[::-1]

In [2]:
s = "praxis"
print(reverse_str(s))

sixarp


Let's now write something that doesn't use slicing. Instead, let's do the following: start with an empty string res. Then add s[len(s)-1] to it. Then add s[len(s)-2] to it, and so on, down to s[0].

In [3]:
def reverse_str2(s):
res = ""
for i in range(len(s)-1, -1, -1):
res = res + s[i] #res += s[i] is more concise
return res


Finally, let's reverse a string by going through its characters from the left to right. Here is the idea:

    res = ""
res = "p" + res #"p"
res = "r" + res #"rp"
res = "a" + res #"arp"
...
...
res = "s" + res #"sixarp"



We need to change the function above just a little bit to accomplish this:

In [4]:
def reverse_str3(s):
res = ""
for i in range(len(s)):
res = s[i] + res


The more usual way to write this function is

In [5]:
def reverse_str4(s):
res = ""
for ch in s:
res = ch + res
return res