diff options
Diffstat (limited to 'challenge-180/mohammad-anwar/python/ch-1.py')
| -rw-r--r-- | challenge-180/mohammad-anwar/python/ch-1.py | 52 |
1 files changed, 52 insertions, 0 deletions
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() |
