Back to home

Python Anagrams main image

Python Anagrams

Test file

Create file

import unittest import anagrams class AnagramsTest(unittest.TestCase): def test_anagrams(self): assess = [ { "inputA": "toyko", "inputB": "kyoto", "expectation": True }, { "inputA": "toyko", "inputB": "kyotoooo", "expectation": False }, { "inputA": "t!!o.9 yko", "inputB": "kyoto", "expectation": True }, { "inputA": "racecar", "inputB": "carrace", "expectation": True }, { "inputA": "TOKYO", "inputB": "kyoto", "expectation": True } ] for test in assess: self.assertEqual(anagrams.isAnagram( test["inputA"], test["inputB"]), test["expectation"]) if __name__ == '__main__': unittest.main()


Create file

import re def isAnagram(strA, strB): reStrA = re.sub("[^a-zA-Z]", "", strA).strip().lower() reStrB = re.sub("[^a-zA-Z]", "", strB).strip().lower() print(reStrA) print(reStrB) dictA = {} for c in reStrA: if c in dictA.keys(): dictA[c] = dictA[c] + 1 else: dictA[c] = 1 dictB = {} for c in reStrB: if c in dictB.keys(): dictB[c] = dictB[c] + 1 else: dictB[c] = 1 if len(dictA) != len(dictB): return False for c in dictA: if dictB[c] == None: return False if dictA[c] != dictB[c]: return False return True

Running tests

Change into directory and run python3 -m pytest -v

Personal image

Dennis O'Keeffe

  • Melbourne, Australia

Hi, I am a professional Software Engineer. Formerly of Culture Amp, UsabilityHub, Present Company and NightGuru.
I am currently working on, Den Dribbles and LandPad .


Get fresh posts + news direct to your inbox.

No spam. We only send you relevant content.