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

文字を置き換えて文字列を別の文字列にすることができるかどうかをチェックするプログラム(C ++ではない)


2つの小文字の文字列sとtがあるとします。ここで、s内の文字のすべての出現箇所を別の文字に置き換える操作について考えてみます。この操作を何度でも実行できる場合は、sをtに変換できるかどうかを確認する必要があります。

したがって、入力がs ="eye" t ="pip"の場合、「e」を「p」に置き換え、「y」を「i」に置き換えることができるため、出力はTrueになります。

>

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

  • 1つのマップm1と別のマップm2を定義します

  • n:=sのサイズ

  • 初期化i:=0の場合、i

    • s [i]がm1にある場合、-

      • m1 [s[i]]がt[i]と同じ場合、-

        • 次のイテレーションに行く

      • falseを返す

    • それ以外の場合

      • m1 [s [i]]:=t [i]

  • trueを返す

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

#include <bits/stdc++.h>
using namespace std;
bool solve(string s, string t) {
   map m1, m2;
   int n = s.size();
   for(int i = 0; i <n; i++){
      if(m1.count(s[i])){
         if(m1[s[i]] == t[i]) continue;
            return false;
      }
      else{
         m1[s[i]] = t[i];
      }
   }
   return true;
}
int main(){
   string s = "eye", t = "pip";
   cout << solve(s, t);
}

入力

"eye","pip"

出力

1

  1. Pythonで指定された文字列文字からk回文を作成できるかどうかを確認するプログラムはありますか?

    文字列sと別の数字kがあるとすると、sのすべての文字を使用してkpalindromesを作成できるかどうかを確認する必要があります。 したがって、入力がs =amledavmel k =2の場合、levelとmadamを作成できるため、出力はTrueになります。 これを解決するために、次の手順に従います d:=それぞれのユニークなキャラクターとその頻度を保存するマップ cnt:=0 dのキーごとに、実行します d [key]が奇数の場合、 cnt:=cnt + 1 kの場合、 Falseを返す Trueを返す 理解を深め

  2. 与えられた文字列をチェックするプログラムがPythonでパングラムかどうか

    文字列sがあり、これが文を表しているとすると、英語のアルファベットのすべての文字が少なくとも1回使用されているかどうかを確認する必要があります。 したがって、入力が「不機嫌そうな魔法使いが邪悪な女王とジャックのために有毒な醸造を行う」のような場合、出力はTrueになります これを解決するには、次の手順に従います- s:=sのすべての文字を小文字にする a:=0 英語のアルファベットの各iについて、 iがsにない場合は、 Falseを返す Trueを返す 理解を深めるために、次の実装を見てみましょう- 例 import string class Solution: &n