From 0ea24ad3f2e62e9531e778ee31b582d73efe4b77 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Sat, 3 Sep 2022 21:38:53 +0100 Subject: - Added solutions to week 180. --- challenge-180/mohammad-anwar/python/ch-1.py | 52 +++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 challenge-180/mohammad-anwar/python/ch-1.py (limited to 'challenge-180/mohammad-anwar/python/ch-1.py') diff --git a/challenge-180/mohammad-anwar/python/ch-1.py b/challenge-180/mohammad-anwar/python/ch-1.py new file mode 100644 index 0000000000..5ce058ecf5 --- /dev/null +++ b/challenge-180/mohammad-anwar/python/ch-1.py @@ -0,0 +1,52 @@ +#!/usr/bin/python3 + +''' + +Week 180: + + https://theweeklychallenge.org/blog/perl-weekly-challenge-180 + +Task #1: First Unique Character + + You are given a string, $s. + + Write a script to find out the first unique character in the + given string and print its index (0-based). + +''' + +import unittest + +def firstUniqueCharacter(str) -> int: + char_list = [] + char_hash = {} + for c in list(str): + if c == ' ': + next + c = c.lower() + + if c in char_hash: + char_hash[c] += 1 + else: + char_list.append(c) + char_hash[c] = 1 + + i = 0 + for c in char_list: + if char_hash[c] == 1: + return i + + i = i + 1 + + return i + +# +# +# Unit test class + +class TestFirstUniqueCharacter(unittest.TestCase): + def test_FirstUniqueCharacter(self): + self.assertEqual(firstUniqueCharacter('Perl Weekly Challenge'), 0) + self.assertEqual(firstUniqueCharacter('Long Live Perl'), 1) + +unittest.main() -- cgit