LTIMindtree Python Coding Interview Cheat Sheet
This guide contains the most important LeetCode-style coding questions, patterns,
explanations, and Python solutions for backend Python interviews.
1. Two Sum
LeetCode Link: [Link]
Pattern: HashMap / Dictionary
Easy Explanation: Store previously seen numbers in a dictionary for O(1) lookup.
Python Solution:
def twoSum(nums, target):
d = {}
for i, n in enumerate(nums):
diff = target - n
if diff in d:
return [d[diff], i]
d[n] = i
2. Valid Palindrome
LeetCode Link: [Link]
Pattern: Two Pointer / String
Easy Explanation: A palindrome reads same forward and backward.
Python Solution:
def isPalindrome(s):
s = ''.join([Link]() for ch in s if [Link]())
return s == s[::-1]
3. Valid Anagram
LeetCode Link: [Link]
Pattern: Counter / Frequency
Easy Explanation: Two strings are anagrams if character counts are same.
Python Solution:
from collections import Counter
def isAnagram(s, t):
return Counter(s) == Counter(t)
4. Contains Duplicate
LeetCode Link: [Link]
Pattern: Set
Easy Explanation: Set removes duplicates automatically.
Python Solution:
def containsDuplicate(nums):
return len(nums) != len(set(nums))
5. Reverse String
LeetCode Link: [Link]
Pattern: String Manipulation
Easy Explanation: Python slicing can reverse strings easily.
Python Solution:
def reverseString(s):
return s[::-1]
6. Best Time to Buy and Sell Stock
LeetCode Link: [Link]
Pattern: Sliding Window
Easy Explanation: Track minimum price and calculate maximum profit.
Python Solution:
def maxProfit(prices):
mn = prices[0]
profit = 0
for p in prices:
mn = min(mn, p)
profit = max(profit, p - mn)
return profit
7. Longest Substring Without Repeating Characters
LeetCode Link: [Link]
characters/
Pattern: Sliding Window + Set
Easy Explanation: Use sliding window and set to track unique characters.
Python Solution:
def lengthOfLongestSubstring(s):
seen = set()
left = 0
mx = 0
for right in range(len(s)):
while s[right] in seen:
[Link](s[left])
left += 1
[Link](s[right])
mx = max(mx, right - left + 1)
return mx
8. Merge Sorted Array
LeetCode Link: [Link]
Pattern: Two Pointer
Easy Explanation: Compare values using two pointers.
Python Solution:
def merge(a, b):
i=j=0
res = []
while i < len(a) and j < len(b):
if a[i] < b[j]:
[Link](a[i])
i += 1
else:
[Link](b[j])
j += 1
return res + a[i:] + b[j:]
9. Valid Parentheses
LeetCode Link: [Link]
Pattern: Stack
Easy Explanation: Use stack to match opening and closing brackets.
Python Solution:
def isValid(s):
stack = []
mp = {')':'(', ']':'[', '}':'{'}
for ch in s:
if ch in [Link]():
[Link](ch)
else:
if not stack or [Link]() != mp[ch]:
return False
return not stack
10. Reverse Linked List
LeetCode Link: [Link]
Pattern: Pointer Manipulation
Easy Explanation: Reverse pointers one by one.
Python Solution:
def reverseList(head):
prev = None
curr = head
while curr:
nxt = [Link]
[Link] = prev
prev = curr
curr = nxt
return prev
Golden Interview Tips
If problem says duplicate -> use set
If problem says count -> use dictionary or Counter
If problem says pair sum -> use hashmap
If problem says substring -> think sliding window
Always dry run on paper before coding
Explain brute force first, then optimize