Here are some fun beginner-friendly coding problems that I came across recently. I hope that this article can help you improve your understanding and motivate you to learn.
1. Number of integers in a string
Given a string, return the number of integers present. For example, the string "My favourite number is 17 and 30" has 2 integers.
Tips:
- Break the string down into individual words.
- Use Python's built in functions to check for the type of each word.
Solution:
def num_of_integers(str):
count = 0 # initialise count
str = str.split() # split the string into list of words
for i in range(len(str)):
if(str[i].isdigit()): #check if the word is an integer
count += 1 # increment count
return count
print(num_of_integers("My favourite number is 17 and 30"))
2. Palindrome checker
Write a function that checks is a given word is a palindrome(a word that is read the same forward and backward, for example, "bob", "abba", "radar"), assuming that input will be in lowercase letters.
Solution:
# Method 1: Iterative solution
def palindrome(str):
for i in range(int(len(str) / 2)):
if (str[i] == str[len(str)-1]):
return True
return False
# Method 2: Using Python's built in function
def palindrome(str):
return str == str[::-1] # compares the string and its reverse
3. Zip two lists
Write a custom zip function that replicates Python's built in zip()
function.
Solution:
def custom_zip(list1, list2):
result = []
for i in range(len(list1)):
result.append((list1[i], list2[i]))
return result
print(custom_zip([0, 1, 2, 3],[5, 6, 7, 8]))
4. Print a staircase
Given a positive integer n, print a staircase of height and width of n using "#" and spaces. An example is shown below:
n = 4
#
##
###
####
Tips:
- Use
for
loops - Think of how many "#" and white spaces you want in each row
Solution:
def staircase(n):
for i in range(n):
for x in range(i+1):
print("#", end = "")
for y in range(n-i-1):
print(" ", end = "")
print()
staircase(4)
Explanation:
- For the first row, you want 1 "#" and (n - 1) white spaces. For the second row, you want 2 "#" and (n - 2) white spaces and so on...
- The nested for loop is used for displaying the "#" and white spaces for each line.
- Once each line is completed, it will go to the outer loop then print the next line.
5. Recursive Pascal's triangle
Given a row and column number, write a recursive function that returns the corresponding value of the specified row and column in the Pascal's triangle as shown below:
Tips:
- The values are formed by adding together the two numbers just above to the left and right of each position in the triangle.
- There are a few base cases to consider.
- Number of columns should not be larger than number of rows.
Solution:
def pascal_triangle(row, col):
if (row >= col):
if (col == 0 or row == 0 or row == col):
return 1
else:
return pascal_triangle(row-1, col-1) + pascal_triangle(row-1, col)
else:
return 0
print(pascal_triangle(3,0))
print(pascal_triangle(3,1))
print(pascal_triangle(3,2))
print(pascal_triangle(3,3))
Hope you had fun trying out these challenges! Feel free to share your solutions and any comments regarding the post.
Top comments (0)