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

Javaでプログラムを作成して、別の文字列を2桁回転させて文字列を取得できるかどうかを確認します。


2つの文字列「a」と「b」があるとすると、タスクは、文字列「a」を反時計回りまたは時計回りに正確に2桁回転させて、文字列「b」を取得できるかどうかを確認することです。たとえば、

入力-1

a = google
b = legoog

出力

True

説明 −文字列「google」は反時計回りに2箇所回転できるため、文字列「legoog」になります。したがって、Trueを返します。

入力-2

a = tuorialst
b = tutorials

出力

False

説明 −文字列「tuorialst」を2箇所回転させて、別の文字列「tutorials」を取得することはできません。したがって、Falseを返します。

この問題を解決するために使用されるアプローチ

与えられた2つの文字列に対して、このアプローチには2つのケースがあります-

  • 反時計回りの回転の場合

  • 時計回りの回転用。

まず、両方の文字列の長さが異なる場合は、falseを返します。それ以外の場合、両方の文字列の長さが「2」以下の場合、Trueを返します。

それ以外の場合は、反時計回りに2桁回転させて文字列「b」の部分文字列が文字列「a」と等しくなるかどうかを確認し、Trueを返します。それ以外の場合はFalse。

同様に、文字列「b」を時計回りに2桁回転させると、文字列「a」と等しくなり、Trueが返されます。それ以外の場合は、falseが返されます。

  • 2つの入力文字列「a」と「b」を取ります

  • ブール関数checkRotated(string a、string b)は、2つの文字列「a」と文字列「b」を取り、文字列「b」を反時計回りまたは時計回りに回転させることにより、それらが等しいかどうかを返します。

  • 文字列「a」と文字列「b」の長さを確認してください。

  • 文字列「b」の部分文字列を、反時計回りに2か所回転させて見つけます。

  • 次に、結果の部分文字列が文字列「a」と等しいかどうかを確認し、等しい場合はtrueを返します。

  • 文字列「b」のサブストリングを時計回りに2か所回転させて見つけます。

  • 次に、結果の部分文字列が文字列「a」と等しいかどうかを確認し、等しい場合はtrueを返します。

  • 文字列が等しくない場合は、falseを返します。

public class Solution{
   static boolean checkRotated(String str1, String str2){
      String s1="";
      String s2="";
      int len= str2.length();
      if (str1.length() != str2.length())
         return false;
      s1= str2.substring(len-2, len)+ str2.substring(0,len-2);
      s2= str2.substring(0,2) + str2.substring(0,2);
      return (str1.equals(s1) || str1.equals(s2));
   }
   public static void main(String[] args){
      String s1= "google";
      String s2= "legoog";
      System.out.println(checkRotated(s1,s2) ? "True":"False");
   }
}

出力

上記のコードを実行すると、出力は次のように出力されます。

False

上記のコードの出力は「True」であるため、「True」と出力されます。


  1. Pythonで1つの要素を削除することにより、ある文字列をチェックするプログラムを別の文字列に変換できます

    2つの文字列sとtがあるとすると、sから1文字を削除してtを取得できるかどうかを確認する必要があります。 したがって、入力がs =world、t =wrldの場合、出力はTrueになります。 これを解決するには、次の手順に従います- i:=0 n:=sのサイズ i

  2. Pythonで1つの文字列を別の文字列に1対1でマッピングできるかどうかを確認するプログラム

    2つの小文字の文字列sがあり、sをtにマッピングできるように、sの各文字から別の文字(同じ文字の場合もある)への1対1のマッピングを作成できるかどうかを確認する必要があるとします。 (文字の順序は変更されません。) i これを解決するには、次の手順に従います- s_dict:=新しいマップ t_dict:=新しい地図 0からsサイズとtサイズの最小値までの範囲のiについては、 s [i]がs_dictに存在する場合、 s_dict [s[i]]がt[i]と同じでない場合、 Falseを返す それ以外の場合、t [i]がt_dictに存在する場合、 t_dict [t