aboutsummaryrefslogtreecommitdiff
path: root/challenge-180/mohammad-anwar/python/ch-1.py
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-180/mohammad-anwar/python/ch-1.py')
-rw-r--r--challenge-180/mohammad-anwar/python/ch-1.py52
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()