Pythonでさまざまなメールボックスから重要なメールを並べ替えるプログラム
メールボックスのリストがあるとします。ここで、各メールボックスに文字列のリストが示されています。ここで、各文字列は、ジャンクの場合は「J」、個人の場合は「P」、仕事の場合は「W」のいずれかです。各メールボックスを最初のメールボックスからラウンドロビン順に調べ、Jを除外して、単一のリストを作成し、リストを返します。
したがって、入力がメールボックス=[["W"、 "P"]、["J"、 "P"、 "J"]、["W"]]の場合、出力は["W"になります。 、"W"、 "P"、 "P"]、順番に、フィルタリングなしで、W-> J-> W-> P-> P-> Jになります。これで、ジャンクをフィルターで除外すると、Wが得られます。 -> W->P->P。
これを解決するには、次の手順に従います-
- n_mailboxes:=メールボックスのサイズ
- 結果:=新しいリスト
- counts:=サイズn_mailboxesのリスト、次に0を入力
- more:=True
- moreはゼロ以外ですが、
- more:=False
- 0からn_mailboxesの範囲のiの場合は、
- インデックス:=カウント[i]、メールボックス:=メールボックス[i]
- インデックス<メールボックスのサイズの場合、
- more:=True
- counts [i]:=counts [i] + 1
- メール:=メールボックス[インデックス]
- メールが「J」と同じでない場合は、
- 結果の最後にメールを挿入
- 結果を返す
理解を深めるために、次の実装を見てみましょう-
例
class Solution: def solve(self, mailboxes): n_mailboxes = len(mailboxes) result = [] counts = [0]*n_mailboxes more = True while more: more = False for i in range(n_mailboxes): index, mailbox = counts[i], mailboxes[i] if index < len(mailbox): more = True counts[i] += 1 mail = mailbox[index] if mail != "J": result.append(mail) return result ob = Solution() mailboxes = [["W", "P"],["J", "P", "J"],["W"]] print(ob.solve(mailboxes))>
入力
[["W", "P"],["J", "P", "J"],["W"]]
出力
['W', 'W', 'P', 'P']
-
Pythonプログラムで文字列からn番目の文字を削除する
この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 文字列が与えられたので、与えられた文字列からi番目のインデックス付き文字を削除して表示する必要があります。 Pythonのどの文字列でも、インデックス付けは常に0から始まります。文字列「tutorialspoint」があるとすると、そのインデックス付けは次のように行われます- T u t o r i a l s p o i n t 0 1 2 3 4 5 6 7 8 9 10 11 12 13 次に、ステートメントを解決するためのPythonスクリプトgを見てみましょう- 例 def remove(str
-
IPアドレスから先行ゼロを削除するPythonプログラム
IPアドレスは次のとおりです。私たちのタスクは、IPアドレスから先行ゼロを削除することです。まず、指定された文字列を「。」で分割します。次に、それを整数に変換し、先行ゼロを削除してから、それらを文字列に結合します。 例 Input : 200.040.009.400 Output : 200.40.9.400 アルゴリズム Step 1: Input the IP address. Step 2. Splits the ip by ".". Step 3: Then convert the string to an integer we can use int (param