KのKの値を見つけるプログラム-C++の類似した文字列
2つの文字列sとtがあるとします。これらの2つの文字列は、s内の2つの文字の位置を正確にK回入れ替えて、結果の文字列がtになる場合、Kに似ています。 2つのアナグラムsとtがあり、sとtがKに類似している最小のKを見つける必要があります。
したがって、入力がs ="abc"、t ="bac"の場合、出力は1になります。
これを解決するには、次の手順に従います-
-
関数swapp()を定義します。これには、文字列s、i、j、
が必要です。 -
x:=s [i]、y:=s [j]
-
s [i]:=y、s [j]:=x
-
メインの方法から、次のようにします-
-
AがBと同じ場合、:、0を返します
-
訪問した1セットを定義する
-
訪問済みにAを挿入
-
1つのキューqを定義し、Aをqに挿入します
-
初期化レベル:=1の場合、qが空でない場合は、更新(レベルを1増やします)、実行-
-
sz:=qのサイズ
-
szがゼロ以外の場合、反復ごとにszを1ずつ減らします。次のようにします。
-
curr:=qの最初の要素
-
qから要素を削除
-
i:=0
-
(i
-
(iを1増やします)
-
-
初期化j:=i + 1の場合、j
-
curr[i]がcurr[j]と同じである場合、次のようになります。
-
次の部分を無視し、次の反復にスキップします
-
-
curr[j]がB[i]と等しくない場合、次のようになります。
-
次の部分を無視し、次の反復にスキップします
-
-
curr[j]がB[j]と同じ場合、次のようになります。
-
次の部分を無視し、次の反復にスキップします
-
-
swapp(curr、i、j)
-
currがBと同じ場合、次のようになります。
-
レベルを返す
-
-
訪問者のcount(curr)を呼び出さない場合は、次のようにします。
-
訪問先にcurrを挿入
-
qにcurrを挿入
-
-
swapp(curr、i、j)
-
-
-
-
-1を返す
例
理解を深めるために、次の実装を見てみましょう
#include <bits/stdc++.h> using namespace std; class Solution { public: int kSimilarity(string A, string B) { if (A == B) return 0; unordered_set<string> visited; visited.insert(A); queue<string> q; q.push(A); for (int lvl = 1; !q.empty(); lvl++) { int sz = q.size(); while (sz--) { string curr = q.front(); q.pop(); int i = 0; while (i < curr.size() && curr[i] == B[i]) i++; for (int j = i + 1; j < curr.size(); j++) { if (curr[i] == curr[j]) continue; if (curr[j] != B[i]) continue; if (curr[j] == B[j]) continue; swapp(curr, i, j); if (curr == B) return lvl; if (!visited.count(curr)) { visited.insert(curr); q.push(curr); } swapp(curr, i, j); } } } return -1; } void swapp(string &s, int i, int j) { char x = s[i]; char y = s[j]; s[i] = y; s[j] = x; } }; main(){ Solution ob; cout << (ob.kSimilarity("abc", "bac")); }
入力
"abc", "bac"
出力
1
-
Pythonでプログラムを作成して、特定のシリーズのNaN値のインデックスを見つけます
入力 − シリーズがあると仮定します 0 1.0 1 2.0 2 3.0 3 NaN 4 4.0 5 NaN 出力 − そして、NaNインデックスの結果は次のとおりです。 index is 3 index is 5 解決策 これを解決するには、以下の手順に従います- シリーズを定義します。 forループを作成してすべての要素にアクセスし、if条件を設定してisnan()をチェックします。最後に、インデックス位置を印刷
-
べき乗剰余のためのPythonプログラム
x、y、zの3つの数値が与えられた場合、私たちのタスクは(x ^ y)%zを計算することです 例 Input: x = 2, y = 3, p = 3 Output: 2 説明 :2 ^ 3%3 =8%3=2。 アルゴリズム Step 1: Input three numbers. Step 2: then we use pow() to calculating power and % for modular. Step 3: display result. サンプルコード x = int(input(Enter First Value ::>)) y = int(inpu