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

Pythonですべての母音を含む部分文字列を検索する


小文字のアルファベットの文字列があるとします。少なくとも一度はすべての母音を含む部分文字列を見つける必要があり、その部分文字列には子音がありません。

したがって、入力が「helloworldaeiouaieuonicestring」のような場合、出力は['aeiou'、'aeioua'、'aeiouai'、'aeiouaiu'、'eioua'、'eiouai'、'eiouaiu']

になります。

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

  • n:=sのサイズ

  • 0からnの範囲のiの場合、実行

    • my_map:=新しいマップ

    • iからnの範囲のjについては、次のようにします

      • s [j]が母音でない場合は、

        • ループから出てきます

      • my_map [s [j]]:=1

      • my_mapのサイズが5と同じ場合、

        • s[インデックスiからj+1]

          を表示します

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

def isVowel(x):
   if x in ['a','e','i','o','u']:
      return True
   return False
def get_substrings(s):
   n = len(s)
   for i in range(n):
      my_map = dict()
      for j in range(i, n):
         if (isVowel(s[j]) == False):
            break
         my_map[s[j]] = 1
         if (len(my_map) == 5):
            print(s[i:j + 1])
s = "helloworldaeiouaiunicestring"
get_substrings(s)

入力

"helloworldaeiouaiunicestring"

出力

aeiou
aeioua
aeiouai
aeiouaiu
eioua
eiouai
eiouaiu

  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で0で埋められたすべての長方形を検索する

    バイナリ2Dマトリックスがあるとすると、0で埋められたすべての長方形の始点と終点を見つける必要があります。長方形は分離されており、互いに接触していないことを覚えておく必要がありますが、配列の境界に接触することはできます。要素が1つしかない長方形も可能です。 したがって、入力が-のような場合 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 0 1 1