Skip to content

Instantly share code, notes, and snippets.

View charles2588's full-sized avatar

charles gomes charles2588

View GitHub Profile
def SortByExampleArray(exampleArr,testArr):
CountDict=dict((el,0) for el in testArr) #initialize dictionary
Result=[] #initialize empty Result array
for x in testArr:
CountDict[x]+=1 #Store count of each number with it's key
for x in exampleArr:
if x in testArr:
for i in range(CountDict[x]):
Result.append(x)
return Result
def printsprial(m,n):
arr=[]
count=0
for i in range(m):
arr.append([])
for j in range(n):
count+=1
arr[i].append(count)
print(arr)
def binarySearch(arr,searchterm):
pivotpos=int((len(arr)-1)/2)
if pivotpos==0:
return False
if arr[pivotpos]==searchterm:
return arr[pivotpos]
elif arr[pivotpos]>searchterm:
return binarySearch(arr[:pivotpos],searchterm) #search left when searchterm is less than pivot
else:
return binarySearch(arr[pivotpos:],searchterm)#search right when searchterm is greater than pivot
#Generator function yields iterator rather than returning value, no function calls or calls on stack thus saving memory
def f(n):
for x in range(n):
yield x**3
for i in f(5):
print(i)
def goo_longestsubstring(str,dictionary):
longest=0
longeststr=""
for k,v in dictionary.items():
if v in str:
if longest<len(v):
longest=len(v)
longeststr=v
return longeststr
dictionary={0:"i",1:"charles",2:"am",3:"gomes",4:"substitute",5:"subcharlessubstitute"}
def write2file(filename,content,mode):
try:
with open(filename,mode) as f:
f.write(content)
return("Write Successful")
except IOError:
return("IOError-- "+IOError)
def readfromfile(filename):
#Test if strings are anagram provided their length is same.
def anagramtester(str1,str2):
#dictionary=dict(range(0,26))
#CountDict=dict((el,0) for el in str1)
CountDictStr1=dict()
# i need dictionary to keep count
for i in range(len(str1)):
if str1[i] in CountDictStr1.keys():
CountDictStr1[str1[i]]+=1
else:
#Calculate the sum of list of numbers
def sumoflist(list,count):
if len(list)==1:#Escape Clause
print(count+list[0])
return count+list[0]
else:
count+=list[0]
sumoflist(list[1:],count)
print(sumoflist([1,2,3,4,5],0))
#Wrong way of using recursion above
#Recursive way to convert integer to string
def int2string(num):
#Base case:
if num<10:##check if it is single digit number
return stringlookup(num)
else:
return int2string(int(num/(10**1)))+stringlookup(int(num%(10**1)))
def stringlookup(n):
d = {1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9",0:"0"}
return d[n]
#Recursive way of string reverse
def reversestring(str):
return str[len(str)-1::-1]
def recursivereversestr(str):
if len(str)<1:
return str
else:
return recursivereversestr(str[1:])+str[0]
print(reversestring("ADCA"))
print(recursivereversestr("charles"))