Python Coding Exercise Algorithms

1. Reverse a String

def reverse_string(s: str) -> str:
    return s[::-1]

# Example usage
print(reverse_string("hello"))  # Output: "olleh"
    

2. Find the Largest Number in a List

def find_largest(nums: list) -> int:
    return max(nums)

# Example usage
print(find_largest([1, 2, 3, 4, 5]))  # Output: 5
    

3. Check if a Number is a Palindrome

def is_palindrome(n: int) -> bool:
    return str(n) == str(n)[::-1]

# Example usage
print(is_palindrome(121))  # Output: True
print(is_palindrome(123))  # Output: False
    

4. Fibonacci Sequence

def fibonacci(n: int) -> list:
    fib_seq = [0, 1]
    for i in range(2, n):
        fib_seq.append(fib_seq[-1] + fib_seq[-2])
    return fib_seq[:n]

# Example usage
print(fibonacci(5))  # Output: [0, 1, 1, 2, 3]
    

5. Two Sum Problem

def two_sum(nums: list, target: int) -> list:
    num_map = {}
    for i, num in enumerate(nums):
        complement = target - num
        if complement in num_map:
            return [num_map[complement], i]
        num_map[num] = i

# Example usage
print(two_sum([2, 7, 11, 15], 9))  # Output: [0, 1]
    


6. Remove Duplicates from a List

def remove_duplicates(nums: list) -> list:
    return list(set(nums))

# Example usage
print(remove_duplicates([1, 2, 2, 3, 4, 4, 5]))  # Output: [1, 2, 3, 4, 5]
    

7. Count the Number of Vowels in a String

def count_vowels(s: str) -> int:
    vowels = 'aeiouAEIOU'
    return sum(1 for char in s if char in vowels)

# Example usage
print(count_vowels("hello world"))  # Output: 3
    

8. Merge Two Sorted Lists

def merge_sorted_lists(list1: list, list2: list) -> list:
    merged = []
    i = j = 0
    while i < len(list1) and j < len(list2):
        if list1[i] < list2[j]:
            merged.append(list1[i])
            i += 1
        else:
            merged.append(list2[j])
            j += 1
    merged.extend(list1[i:])
    merged.extend(list2[j:])
    return merged

# Example usage
print(merge_sorted_lists([1, 3, 5], [2, 4, 6]))  # Output: [1, 2, 3, 4, 5, 6]
    

9. Find the First Non-Repeated Character in a String

def first_non_repeated_char(s: str) -> str:
    counts = {}
    for char in s:
        counts[char] = counts.get(char, 0) + 1
    for char in s:
        if counts[char] == 1:
            return char
    return None

# Example usage
print(first_non_repeated_char("swiss"))  # Output: "w"
    

10. Find the Intersection of Two Lists

def list_intersection(list1: list, list2: list) -> list:
    return list(set(list1) & set(list2))

# Example usage
print(list_intersection([1, 2, 3, 4], [3, 4, 5, 6]))  # Output: [3, 4]