- Published on
Cracking the Coding Interview
Table of Contents
https://lucidar.me/en/web-dev/list-of-supported-languages-by-prism/
Arrays and Strings
1.1 - Is Unique
bool isUnique(string input) {
if (input.length() > 128 ) return false;
bool charArray[128] = {false};
for (int i = 0; i < input.length(); i++) { int val = input[i];
if (charArray[val]) { string rtn = "Non-unique: " + input; cout << rtn << endl; return false; }
charArray[val] = true; } string rtn = "Unique: " + input; std::cout << rtn << std::endl; return true;}1.2 - Check Permutation
def check_permutation(input1, input2): arr1 = [] arr2 = []
if len(input1) != len(input2): return False
for x in input1: s1 = input1.count(x) s2 = input2.count(x)
if s1 != s2: return False
for y in input2: s1 = input1.count(y) s2 = input2.count(y)
if s1 != s2: return False
return True1.3 - URLify
def urlify(inputString, stringLen): rtn = "" count = 0 for x in inputString: <0: return rtn if x == ' ': rtn += "%20" stringLen -= 1 else: rtn += x stringLen -= 1 print(rtn) return rtn1.5 - One Away
def one_away(ogstring, editstring): if ogstring == editstring: print("True - " + ogstring + " " + editstring) return True
if abs(len(ogstring) - len(editstring)) > 1: print("False - " + ogstring + " " + editstring) return False
ogrtn = [] editrtn = []
for x in ogstring: if x not in editstring: ogrtn += x
for y in editstring: if y not in ogstring: editrtn += y
# print("----") # print(ogString + " " + editString) # print("ogrtn: " + str(ogrtn)) # print("editrtn: " + str(editrtn)) # print("----")
if ((len(ogrtn) == len(editrtn)) and (len(ogrtn) == 1)) or (len(ogrtn) == 0 and len(editrtn) == 1) or \ ((len(ogrtn) == 1) and (len(editrtn) == 0)): print("True - " + ogstring + " " + editstring) return True else: print("False - " + ogstring + " " + editstring) return False
# Testsif __name__ == '__main__': one_away("hi", "hi") one_away("hi", "hii") one_away("hi", "hiii")
one_away("hi", "ho") one_away("hi", "he") one_away("hi", "h")
one_away("pale", "ple") one_away("pales", "pale") one_away("pale", "bale") one_away("pale", "bake")1.6 - String Compression
def string_compression(inputstring): strarr = [] rtn = ""
for x in inputstring: strarr += x
idx = 0 count = 0 curr = strarr[idx]
while idx < len(strarr):
if curr == strarr[idx]: count += 1 if idx - 1 > 0: curr = strarr[idx - 1] else: curr = strarr[idx]
if idx == (len(strarr) - 1): rtn += curr + str(count)
else: count += 1 rtn += curr + str(count) count = 0 curr = strarr[idx] # print("e - " + strarr[idx])
idx += 1
# print(strarr) print(rtn) return rtn