def linkedListPalindrome(linkedList): myHashTable = HashTable() pointer = linkedList.head while (pointer): if (myHashTable.get(pointer.value)): myHashTable.put(pointer.value, myHashTable.get(pointer.value) + 1) else: myHashTable.put(pointer.value, 1) pointer = pointer.next isPalindrome = True evenCount = 0 oddCount = 0 for i in range(0, len(myHashTable.getEntries())): if (myHashTable.getEntries()[i]['value'] % 2 == 0): evenCount = evenCount + 1 else: oddCount = oddCount + 1 if (oddCount > 1): isPalindrome = False return isPalindrome
def zeroMatrix(matrix): m = len(matrix) n = len(matrix[0]) iHashTable = HashTable() jHashTable = HashTable() for i in range(0, m): for j in range(0, n): if (matrix[i][j] == 0): iHashTable.put(i, "i") jHashTable.put(j, "j") ientries = iHashTable.getEntries() jentries = jHashTable.getEntries() for i in range(0, len(ientries)): for j in range(0, n): matrix[ientries[i]['key']][j] = 0 for i in range(0, len(jentries)): for j in range(0, m): matrix[j][jentries[i]['key']] = 0 return matrix
def removeDups(linkedList): myHashTable = HashTable() current = linkedList.head while (current): myHashTable.put(current.value, "node") current = current.next entries = myHashTable.getEntries() current = linkedList.head for i in range(0, len(entries)): if (i == 0): linkedList.head.value = entries[i]['key'] else: current.next.value = entries[i]['key'] current = current.next current.next = None return linkedList
def palindromePermutation(string): word = string.lower() myHashTable = HashTable() for i in range(0, len(word)): if (myHashTable.get(word[i]) != None): myHashTable.put(word[i], myHashTable.get(word[i]) + 1) elif (myHashTable.get(word[i]) == None and word[i] != " "): myHashTable.put(word[i], 1) numOfEvenOccurences = 0 numOfOddOccurences = 0 entries = myHashTable.getEntries() for i in range(0, len(entries)): if (entries[i]['value'] % 2 == 0): numOfEvenOccurences = numOfEvenOccurences + 1 elif (entries[i]['value'] % 2 == 1): numOfOddOccurences = numOfOddOccurences + 1 if (numOfOddOccurences > 1): return False else: return True