用Java编写一个程序,以检查是否可以通过将另一个字符串旋转2位来获得一个字符串
假设我们有两个字符串“a”和“b”,任务是查找是否可以通过将字符串“a”沿逆时针或顺时针方向精确旋转2个位置来获得字符串“b”。例如,
输入1-
a = google b = legoog
输出-
True
说明-字符串“google”可以沿逆时针方向旋转两个位置,这导致字符串“legoog”。因此,我们返回True。
输入-2-
a = tuorialst b = tutorials
输出-
False
说明-字符串“tuorialst”不能在任何方向旋转两个位置以获得另一个字符串“tutorials”。因此,我们返回False。
解决这个问题的方法
对于给定的两个字符串,这种方法有两种情况-
逆时针旋转
顺时针旋转。
首先,如果两个字符串的长度不同,则返回false;否则,返回false。否则,如果两个字符串的长度都小于或等于“2”,则我们将返回True。
在其他情况下,我们将通过逆时针旋转两个位置来检查字符串'b'的子字符串是否等于字符串'a',然后返回True。否则为False。
类似地,如果通过将字符串“b”沿顺时针方向旋转两个位置,它等于字符串“a”,则返回True,否则返回false。
取两个输入字符串'a'和'b'
布尔函数checkRotated(stringa,stringb)采用两个字符串“a”和字符串“b”,并通过沿逆时针或顺时针方向旋转字符串“b”来返回它们是否相等。
检查字符串“a”和字符串“b”的长度。
通过逆时针旋转两个位置来找到字符串“b”的子字符串。
现在检查结果子字符串是否等于字符串“a”,如果相等则返回true。
通过沿顺时针方向在两个位置旋转来查找字符串'b'的子字符串。
现在检查结果子字符串是否等于字符串“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”。