From a0ea2c78c8ac2bb33fb79ab151f86b3beb143647 Mon Sep 17 00:00:00 2001 From: Mohammad S Anwar Date: Wed, 8 Mar 2023 23:32:11 +0000 Subject: - Added solutions by Avery Adams. - Added solutions by Jaldhar H. Vyas. - Added solutions by Mark Anderson. - Added solutions by Luca Ferrari. - Added solutions by Peter Campbell Smith. - Added solutions by W. Luis Mochan. - Added solutions by Paulo Custodio. - Added solutions by Cheok-Yin Fung. - Added solutions by E. Choroba. - Added solutions by Bob Lied. - Added solutions by Robbie Hatley. - Added solutions by Matthias Muth. - Added solutions by Lubos Kolouch. - Added solutions by Solathian. - Added solutions by Duncan C. White. - Added solutions by Kjetil Skotheim. - Added solutions by Marton Polgar. - Added solutions by David Ferrone. - Added solutions by Mariano Spadaccini. - Added solutions by Robert DiCicco. - Added solutions by Ulrich Rieke. - Added solutions by Laurent Rosenfeld. --- challenge-207/eric-cheung/python/ch-1.py | 30 ++++++++++++++++++++++++++++++ challenge-207/eric-cheung/python/ch-2.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100755 challenge-207/eric-cheung/python/ch-1.py create mode 100755 challenge-207/eric-cheung/python/ch-2.py (limited to 'challenge-207/eric-cheung/python') diff --git a/challenge-207/eric-cheung/python/ch-1.py b/challenge-207/eric-cheung/python/ch-1.py new file mode 100755 index 0000000000..57ddd9e817 --- /dev/null +++ b/challenge-207/eric-cheung/python/ch-1.py @@ -0,0 +1,30 @@ + +arrKeyBoardRow = ["qwertyuiop", "asdfghjkl", "zxcvbnm"] + +arrInputWords = ["Hello", "Alaska", "Dad", "Peace"] ## Example 1 +## arrInputWords = ["OMG", "Bye"] ## Example 2 + +arrKeyBoardChar = [] +for arrLoop in arrKeyBoardRow: + arrKeyBoardChar.append(list(arrLoop)) + +arrOutputWords = [] + +for arrLoop in arrInputWords: + + strLoopLower = arrLoop.lower() + + for nIndx in range(0, len(arrKeyBoardChar)): + if strLoopLower[0] in arrKeyBoardChar[nIndx]: + break + + bSameRow = True + for nLoop in range(1, len(arrLoop)): + if strLoopLower[nLoop] not in arrKeyBoardChar[nIndx]: + bSameRow = False + break + + if bSameRow: + arrOutputWords.append(arrLoop) + +print (arrOutputWords) diff --git a/challenge-207/eric-cheung/python/ch-2.py b/challenge-207/eric-cheung/python/ch-2.py new file mode 100755 index 0000000000..b2da387f6b --- /dev/null +++ b/challenge-207/eric-cheung/python/ch-2.py @@ -0,0 +1,32 @@ + +## https://gist.github.com/restrepo/c5f8f9fd5504a3f93ae34dd10a5dd6b0 + +def hIndex(arrCitation): + + ### https://github.com/kamyu104/LeetCode/blob/master/Python/h-index.py + ### :type arrCitation: List[int] + ### :rtype: int + + ### Given an array of citations (each citation is a non-negative integer) + ### of a researcher, write a function to compute the researcher's h-index. + ### + ### According to the definition of h-index on Wikipedia: + ### "A scientist has index h if h of his/her N papers have + ### at least h citations each, and the other N − h papers have + ### no more than h citations each." + ### + ### For example, given arrCitation = [3, 0, 6, 1, 5], + ### which means the researcher has 5 papers in total + ### and each of them had received 3, 0, 6, 1, 5 citations respectively. + ### Since the researcher has 3 papers with at least 3 citations each and + ### the remaining two with no more than 3 citations each, his h-index is 3. + ### + ### Note: If there are several possible values for h, the maximum one is taken as the h-index. + + return sum(nLoop >= nIndx + 1 for nIndx, nLoop in enumerate(sorted(list(arrCitation), reverse = True))) + + +## arrInputCitation = [10, 8, 5, 4, 3] ## Example 1 +arrInputCitation = [25, 8, 5, 3, 3] ## Example 2 + +print (hIndex(arrInputCitation)) -- cgit