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

Pythonの古代宇宙飛行士説


文字列辞書があるとすると、その辞書は古代宇宙飛行士の辞書の部分的な辞書式順序を表しています。したがって、文字列sがある場合は、この古代宇宙飛行士の辞書に従って辞書式順序で並べ替えられた文字列であるかどうかを確認する必要があります。

したがって、入力がdictionary ="bdc"、s ="bbbb h ddd i cccc"のような場合、出力はTrueになります

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

  • l:=astro_dictのサイズ

  • lが0と同じ場合、

    • Trueを返す

  • i:=0

  • sの各文字cについて、実行します

    • astro_dictにcがある場合、

      • i

        • i:=i + 1

      • i> =lまたはastro_dict[i]がcでない場合、

        • Falseを返す

  • Trueを返す

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

class Solution:
   def solve(self, astro_dict, s):
      l = len(astro_dict)
      if l == 0:
         return True
      i = 0
      for c in s:
         if c in astro_dict:
            while i < l and astro_dict[i] != c:
               i += 1
            if i >= l or astro_dict[i] != c:
               return False
      return True
ob = Solution()
print(ob.solve("bdc","bbbb h ddd i cccc"))

入力

"bdc","bbbb h ddd i cccc"

出力

True

  1. Pythonのissuperset()

    この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',

  2. Pythonのアンダースコア(_)

    Pythonでは、シングルアンダースコア(_)を使用する場合もあれば、ダブルアンダースコア(__)を使用する場合もあります。 Pythonでは、アンダースコアを使用する次のケースがあります。 最後の式の値をインタープリターに格納する場合。 一部の値を無視したい場合。 変数または関数の宣言用。 数値の横方向の値の桁を区切るため。 「国際化(i18n)」または「ローカリゼーション(l10n)」機能としても使用されます。 今度はすべての場合のいくつかの例。 インタプリタで使用 Pythonインタープリターは、最後の式の値を「_」に格納します。 >>> 20 20 &