listA = [1,2,[3,4,[5,6],7,[7.5]],8]
res=[]
def nestlistflatten(x):
if (type(x) is list):
for i in range(len(x)):
if (type(x[i]) is list):
nestlistflatten(x[i])
else:
res.append(x[i])
else:
res.append(x)
return(res)
print(nestlistflatten(listA))
import re
in_string="There are 142 apples and 23 oranges"
get_numbers=re.sub("\D", "", in_string) #we are replacing characters with blank
print(get_numbers)
data="incorrect spacing in python"
out=data.split()
print(" ".join(out))
my_string="organize"
print(my_string[::-1])
random_num=[1,2,0,5,9,23,0,33]
random_num.sort()
for i in range(random_num.count(0)):
random_num.pop(0)
random_num.append(0)
print(random_num)
import itertools
def find_combo(num_list, target):
results = []
for r in range(1, len(num_list) + 1):
combinations = itertools.combinations(num_list, r)
for combination in combinations:
if sum(combination) == target:
results.append(combination)
return results
num_list = [2, 3, 6, 7, 9, 12, 15, 4, 5]
target = 15
combinations = find_combo(num_list, target)
print(f"Combinations that add up to {target}:")
for combination in combinations:
print(combination)
import itertools
def is_anagram(word1, word2):
return sorted(word1) == sorted(word2)
def is_valid_anagram(word):
vowels = "aeiouAEIOU"
has_seen_vowel = False
for letter in word:
if letter in vowels:
if has_seen_vowel:
return False
has_seen_vowel = True
else:
has_seen_vowel = False
return word[0] not in vowels
def find_anagrams(sentence):
words = sentence.split()
word_combinations = itertools.combinations(words, 2)
anagrams = []
for combination in word_combinations:
word1, word2 = combination
if is_anagram(word1, word2) and is_valid_anagram(word1) and is_valid_anagram(word2):
anagrams.append(combination)
return anagrams
sentence = "The cat sat on the back of another cat "
anagrams = find_anagrams(sentence)
print(anagrams)
def sum_3(nums):
nums.sort()
result = []
for i in range(len(nums) - 2):
if i > 0 and nums[i] == nums[i - 1]:
continue
l, r = i + 1, len(nums) - 1
while l < r:
total = nums[i] + nums[l] + nums[r]
if total < 0:
l += 1
elif total > 0:
r -= 1
else:
result.append([nums[i], nums[l], nums[r]])
while l < r and nums[l] == nums[l + 1]:
l += 1
while l < r and nums[r] == nums[r - 1]:
r -= 1
l += 1
r -= 1
return result
# Test the function
print(sum_3([0,0]))
print(sum_3([0,1,1]))
def solutionA(S):
s1=set(S)
list1=[]
k=0
ans=0
if (S==(S[::-1])):
ans=0
elif (len(S)==2):
ans=1
else:
for a in s1:
list1.append(S.count(a))
for b in list1:
if (int((b/2)) < 1):
list1.pop(b)
else:
k=k+ int((b/2))
if ( (len(S) == (k*2)) or (len(S)== ((k*2)+1)) ):
ans=0
else:
ans=(len(S) - ((k*2)+1))
return ans
print(solutionA("aababaa") )
def solution(A):
for i in range(1, 1000001):
if i not in A:
return i
return 1
print(solution([-1,0,1,3]))
example_list = [("a", "b"), ("a", "c"), ("b", "d"), ("b", "e"), ("e", "f")]
fin_list = []
t_ele = []
for i in example_list:
if i[0] not in t_ele:
t_ele.append(i[0])
for i in t_ele:
k = ()
k=k+(i,)
for j in example_list:
if i == j[0]:
k=k + (j[1],)
fin_list.append(k)
# printing result
print(fin_list)
def solutiony(A, K):
n = len(A)
for i in range(n - 1):
if (A[i] + 1 < A[i + 1]):
return False
if (A[0] != 1 or A[n - 1] != K):
return False
else:
return True
list1=[1,2,3,4,5,6]
print(solutiony(list1,8))
a='11'
b='10'
banary_add_out = format((int(a, 2) + int(b, 2)), 'b')
print(banary_add_out)
def most_occur(my_list):
max_count=0
max_item='NULL'
temp_dict={}
for item in my_list:
if item not in temp_dict:
temp_dict[item] = 1
else:
temp_dict[item]+=1
if temp_dict[item] > max_count:
max_count = temp_dict[item]
max_item=item
return max_item
print(most_occur([1,3,1,3,2,1]))
def min_replacements(s):
replace_ab = 0
i=0
while i < (len(s)):
if s[i:i+3] == 'aaa':
replace_ab += 1
i += 3
elif s[i:i+3] == 'bbb':
replace_ab += 1
i += 3
else :
i+=1
return replace_ab
print(min_replacements("baaabbaabbba"))
print(min_replacements("baaaaa"))
print(min_replacements("baabaa"))