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

PythonでK個の一意の文字を含む文字列を形成するために必要な最小限の機会を見つけるためのプログラム


小文字のアルファベット文字の文字列sと別の数字kがあるとすると、結果の文字列が最大k個の異なる文字を持つように、文字列に必要な変更の最小数を見つける必要があります。この場合、変更は実際には1つの文字を他の文字に変更することです。

したがって、入力がs ="wxxyyzzxx"、k =3の場合、出力は1になります。これは、文字 "w"を削除して、3つの異なる文字(x、y、およびz)を取得できるためです。

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

  • count:=sの各文字とその頻度のマップ

  • sv:=頻度値のソートされたリスト

  • ans:=0

  • 0から(カウントのサイズ)の範囲のiの場合-k-1、do

    • ans:=ans + sv [i]

  • ansを返す

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

from collections import Counter
class Solution:
   def solve(self, s, k):
      count = Counter(s)
      sv = sorted(count.values())
      ans = 0
      for i in range(len(count) - k):
         ans += sv[i]
      return ans

ob = Solution()
s = "wxxyyzzxx"
k = 3
print(ob.solve(s, k))

入力

"wxxyyzzxx",3

出力

1

  1. 文字列にすべての一意の文字が含まれているかどうかを確認するPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 sring入力が与えられた場合、文字列にすべての一意の文字が含まれているかどうかを確認する必要があります。 アプローチ ブール値の配列を作成します。ここで、インデックスiの変数フラグは、アルファベットの文字iが文字列に含まれているかどうかを示します。 この文字に2回目に遭遇したとき、文字列文字は一意ではなくなったため、すぐにfalseを返すことができます。 文字列の長さがアルファベットに表示される一意の文字数の値を超える場合も、falseを返すことができます。 文

  2. 文字列内のミラー文字を検索するPythonプログラム

    ユーザー入力文字列とその位置からの位置を指定すると、文字をアルファベット順に文字列の長さまでミラーリングする必要があります。この操作では、「a」を「z」に、「b」を「y」に、「c」を「x」に、「d」を「w」に変更します。これは、最初の文字が最後になることを意味します。オン。 Inpu t: p = 3 Input string = python Output : pygslm アルゴリズム Step 1: Input the string and position from we need to mirror the characters. Step 2: Creating a s