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

PythonでのDI文字列の一致


「I」(増加を示す)または「D」(減少を示す)のみを含む文字列Sがあるとし、N =Sのサイズとします。[0、1、..。の順列Aを返す必要があります。 、N]範囲0、...、N-1-

のすべてのiに対して

したがって、入力が「IDID」のような場合、出力は[0,4,1,3,2]

になります。

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

  • A:=0からNまでのリスト。ここで、NはSのサイズです。
  • res=空白のリスト
  • Sの各要素jについて、
    • jがIの場合、Aから最後の要素を削除し、resに挿入します
    • それ以外の場合は、Aの最初の要素を削除し、resに挿入します
  • return res

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

class Solution:
   def diStringMatch(self, S):
      A=[i for i in range(len(S)+1)]
   return [A.pop((j=='I')-1) for j in S]+A
ob = Solution()
print(ob.diStringMatch("IDID"))

入力

"IDID"

出力

[0, 4, 1, 3, 2]

  1. Pythonで文字列を逆にする

    文字の配列があるとします。追加のスペースを使用せずに文字列を反転する必要があります。したがって、文字列が[H、E、L、L、O]のような場合、出力は[O、L、L、E、 H] これを解決するには、次の手順に従います- 2つのポインタを使用して、開始=0および終了=文字列の長さ– 1 最初と最後の文字を入れ替える 開始を1増やし、終了を1減らします 例 理解を深めるために、次の実装を見てみましょう- class Solution(object):    def reverseString(self, s):       "&q

  2. Pythonのcasefold()文字列

    この関数は、単語の文字を小文字に変換するのに役立ちます。 2つの文字列に適用すると、文字の大文字小文字の種類に関係なく、それらの値と一致する可能性があります。 casefold()の適用 以下の例では、casefold()関数を文字列に適用すると、結果はすべて小文字で出力されます。 例 string = "BestTutorials" # print lowercase string print(" lowercase string: ", string.casefold()) 出力 上記のコードを実行すると、次の結果が得られます- Lowerca