文字のストリームから最初の繰り返しのない文字を見つけるPythonプログラム?
このセクションでは、文字列または文字のストリームから最初の一意の文字または繰り返されない文字を見つけます。この問題を解決する方法は複数あります。同じキャラクターのストリームに対して2つの異なるプログラムを作成しようとします。
方法1:関数を使用する
def firstNonRepeatingChar(str1): char_order = [] counts = {} for c in str1: if c in counts: counts[c] += 1 else: counts[c] = 1 char_order.append(c) for c in char_order: if counts[c] == 1: return c return None print(firstNonRepeatingChar('PythonforallPythonMustforall')) print(firstNonRepeatingChar('tutorialspointfordeveloper')) print(firstNonRepeatingChar('AABBCC'))
結果
M u None
上記のプログラムはO(n)解を与えます。上記のプログラムでは、最初に文字列を1回ループします。新しい文字を見つけたら、それを値1のcountsオブジェクトに格納し、char_orderに追加します。繰り返される文字に遭遇すると、countsの値を1ずつインクリメントします。最後に、char_orderで値が1の文字が見つかるまで、char_orderをループして、それを返します。
方法2:whileループを使用する
s = "tutorialspointfordeveloper" while s != "": slen0 = len(s) ch = s[0] s = s.replace(ch, "") slen1 = len(s) if slen1 == slen0-1: print ("First non-repeating character is: ",ch) break; else: print ("No Unique Character Found!")
結果
First non-repeating character is: u
-
行列の転置を見つけるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 行列が与えられた場合、転置を同じ行列に格納して表示する必要があります。 行列の転置は、行を列に、列を行に変更することで得られます。つまり、A行列の転置はA[i][j]をA[j][i]に変更することで得られます。 以下に示す実装を見てみましょう- 例 N = 4 def transpose(A): for i in range(N): for j in range(i+1, N): &nbs
-
配列の合計を見つけるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '