Python
 Computer >> コンピューター >  >> プログラミング >> Python

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']

  1. 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

  2. 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