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

Pythonで同じ最初の文字を共有するすべての単語を検索するプログラム


小文字の単語のリストがあるとすると、すべての単語の最初の文字が同じである最長の連続したサブリストの長さを見つける必要があります。

したがって、入力が["she"、 "sells"、 "seashells"、 "on"、 "the"、 "seashore"]の場合、3つの連続する単語が "she"、 "sells"であるため、出力は3になります。 、「貝殻」、すべて同じ最初の文字「s」があります。

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

  • maxlength:=0
  • curr_letter:=Null、curr_length:=0
  • 単語内の各単語について、
    • curr_letterがnullであるか、curr_letterがword [0]と同じでない場合、
      • maxlength:=maxlengthの最大値、curr_length
      • curr_letter:=word [0]、curr_length:=1
    • それ以外の場合、
      • curr_length:=curr_length + 1
  • maxlengthとcurr_lengthの最大値を返します

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

class Solution:
   def solve(self, words):
      maxlength = 0
      curr_letter, curr_length = None, 0
      for word in words:
         if not curr_letter or curr_letter != word[0]:
            maxlength = max(maxlength, curr_length)
            curr_letter, curr_length = word[0], 1
         else:
            curr_length += 1
      return max(maxlength, curr_length)
ob = Solution()
words = ["she", "sells", "seashells", "on", "the", "seashore"]
print(ob.solve(words))

入力

["she", "sells", "seashells", "on", "the", "seashore"]

出力

3

  1. Pythonですべてのポイントを接続するための最小コストを見つけるためのプログラム

    (x、y)の形式のいくつかの点を持つpointsという配列があるとします。ここで、2つのポイント(xi、yi)と(xj、yj)を接続するコストは、それらの間のマンハッタン距離であり、式は| xi--xj|です。 + | yi--yj|。すべてのポイントを接続するための最小コストを見つける必要があります。 したがって、ここでの合計距離は(6 + 5 + 3 + 8)=22です。 これを解決するには、次の手順に従います- points_set:=範囲0からポイントのサイズ-1までの数値を保持する新しいセット ヒープ:=ペア(0、0)でヒープを作成します visited_node:

  2. Pythonで最初と最後の値が同じであるサブリストを見つけるためのプログラム

    numsという番号のリストがあるとすると、最初の要素と最後の要素が同じであるサブリストの数を見つける必要があります。 したがって、入力がnums =[10、15、13、10]の場合、同じ最初と最後の要素を持つサブリストは[10]、[15]、[13]、[ 10]、[10、15、13、10]。 これを解決するには、次の手順に従います- num_sublists:=numsのサイズ d:=空のマップ numsのnごとに、実行します d [n]:=d [n] + 1 dの要素の数kと対応する周波数vごとに、実行します vが1と同じでない場合、 num