[ad_1]
#read the list of words from the file file1=open("C:/Users/user/Downloads/EnglishWords4Letters.txt",'r') #store the list of words in a python list words_list=list(file1.read().split('\n')) #take phone number as input from user number=input('Enter an 8-digit number\n') #store the keypad letters in key-letters format letters={'2':'ABC','3':'DEF','4':'GHI','5':'JKL','6':'MNO','7':'PQRS','8':'TUV','9':'WXYZ'} #extract the last four digits of phone number for translation last_four=number[-4:] #temporary list to store possible translations for given number #list i initially a copy of original words_list provided prev_list=words_list[:-1] k=0 for i in last_four: new_list=[] #if number can no more get translated if i not in letters.keys(): print('Translation failed') break #check for the possible combinations stepwise for each number in sequence for j in range(len(letters[i])): temp=letters[i][j].lower() for word in prev_list: if word[k]==temp: new_list.append(word) k+=1 prev_list=new_list[:] #if no more translations can be obtained if not prev_list: print('Translation failed') break else: #if there are possible translations print them all for i in prev_list: print(number[:-4]+i.upper())
私が試したこと:
私はそれを読んで変換しようとしましたが、Pythonの経験はありません.Cしか知らないので、誰か助けて変換してください.
解決策 1
これはコード変換サービスではありません。コードを翻訳するためにここにいるわけではありません。
仮にそうしたとしても、最終的にターゲット言語の「良いコード」にはなりません。それらは非常に異なるフレームワークに基づいており、ある言語で何かを機能させるものが必ずしも別の言語に直接「翻訳」されるとは限りません。
そのため、最終的には非常に貧弱なコードになり、メンテナンスが不可能ではないにしても難しく、適切にアップグレードできず、元のコードが変更された場合に大きな頭痛の種になります。 そして、「箱から出してすぐに」機能しない場合、デバッグするのは悪夢です。
代わりに、ソース コードを新しいアプリの仕様とターゲット言語/フレームワークの仕様として使用し、オリジナルを “テンプレート” として使用してゼロから記述します。 はるかに優れた結果が得られ、長期的には多くの時間を節約できます。
そして率直に? やみくもに任意の言語から C に変換し、それを自分の作業として渡すと、次の 2 つのことが起こります。
1) C コードの書き方については何も学べず、見つからないタスクに到達した場合 (そして、このタスクよりも複雑になります)、または試験に到達してコピーできない場合に、実際の問題が発生します。どこからでも …
2) あなたが何をしたか (そしておそらくあなたがそれを見つけた言語) は、チューターにとって盲目的に明らかであり、盗作のために自動的にコース不合格になる可能性があります。
もし私があなただったら、あなたの宿題の解決方法についてじっくりと考えるでしょう…
解決策 2
主要なロジックは、Python の知識がなくても簡単に理解できます。 文字列スライスについての欠けているビットは、で説明されています 3. Python の非公式な紹介 — 3.1.2. ストリングス[^] リストに関する次のセクション。
解決策 8
def countWays(nums): n = len(nums) pre = [0] * n for i in range(n): pre[i] = pre[i - 1] + nums[i] def check(l, r): s1 = pre[l] s2 = pre[r] - pre[l] s3 = pre[-1] - pre[r] if s2 <= (s1 + s3): return True return False ans, mod = 0, 10**9 + 7 for i in range(n - 2): lo, hi = i + 1, n - 2 while hi - lo > 1: mid = (lo + hi) // 2 if check(i, mid): lo = mid else: hi = mid if check(i, hi): ans += hi - i elif check(i, lo): ans += lo - i ans %= mod return ans
[ad_2]
コメント