🎉 I'm releasing 12 products in 12 months! If you love product, checkout my new blog workingoutloud.dev

Back to home

Python Anagrams

    Test file

    Create file anagrams_test.py:

    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 anagrams.py.

    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 anagrams_test.py.

    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 Visibuild.


    Get fresh posts + news direct to your inbox.

    No spam. We only send you relevant content.

    Python Anagrams


    Share this post