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

Pythonで区切り文字のセットで区切られた単語を逆にするプログラム


文字列と区切り文字のセットがあるとすると、区切り文字の相対的な順序は変更しないで、文字列内の単語を逆にする必要があります。

したがって、入力がs ="Computer / Network:Internet | tutorialspoint" delims =["/"、 ":"、'|']の場合、出力はtutorialspoint / Internet:Network | Computer

になります。

これを解決するには、次の手順に従います。

単語:=新しいリスト

ans:=空白の文字列

temp:=マップここで

区切り文字以外の単語を区切り、単語配列に挿入します

文字が区切り文字である場合は単語を区切り、それらをansに追加します。

それ以外の場合は、単語配列から単語を逆に読み取り、ansに追加します

ansを返す

理解を深めるために、次の実装を見てみましょう。

from itertools import groupby
class Solution:
   def solve(self, sentence, delimiters):
      words = []
      ans = ""

      for k, g in groupby(sentence, lambda x: x in delimiters):
         if not k:
            words.append("".join(g))

      for k, g in groupby(sentence, lambda x: x in delimiters):
         if k:
            ans += "".join(g)
         else:
            ans += words.pop()
      return ans

ob = Solution()
s = "Computer/Network:Internet|tutorialspoint"
delims = ["/", ":", '|']
print(ob.solve(s, delims))

入力

"Computer/Network:Internet|tutorialspoint", ["/", ":", '|']

出力

tutorialspoint/Internet:Network|Computer

  1. Pythonで有向グラフを反転するプログラム

    有向グラフがあるとすると、その逆を見つける必要があるため、エッジがuからvに移動すると、vからuに移動します。ここで入力は隣接リストになり、ノードがn個ある場合、ノードは(0、1、...、n-1)になります。 したがって、入力が次のような場合 その場合、出力は次のようになります これを解決するには、次の手順に従います- ans:=n個の異なるリストのリスト。nは頂点の数です 各インデックスi、およびグラフ内の隣接リストlについて、実行します lのxごとに、 ans [x]の最後にiを挿入します 回答を返す 理解を深めるために、次の実装を見てみましょう- 例

  2. 文字列に偶数の長さの単語を出力するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 文字列を指定すると、文字列内のすべての単語を均等な長さで表示する必要があります。 アプローチ split()関数を使用して入力文字列を分割します。 forを使用して文字列の単語を繰り返し処理します ループ& len()を使用して単語の長さを計算します 機能。 長さが均等であると評価されると、単語が画面に表示されます。 それ以外の場合、画面に単語は表示されません。 次に、以下の実装を見てみましょう- 例 def printWords(s): # split