gpt4 book ai didi

java - 使用 Lambda 旋转字符串

转载 作者:行者123 更新时间:2023-11-30 06:15:37 26 4
gpt4 key购买 nike

所以我今天遇到了这个问题,但既然我们得到了答案,我尝试使用 lambda 来旋转它,我怀疑我的方法是使用 lambda 来使用反向字符串来旋转它,但希望得到关于如何解决这个问题的反馈。代码如下

我们有两个字符串,A 和 B。

A 上的移位包括获取字符串 A 并将最左边的字符移动到最右边的位置。例如,如果 A = 'abcde',则在 A 上移动一次后它将为 'bcdea'。当且仅当 A 在 A 上移动一定次数后可以变为 B 时,返回 True。

示例 1:输入:A = 'abcde'B = 'cdeab'输出:true

示例 2:输入:A = 'abcde'B = 'abced'输出:

我的界面:

public interface MyString {

String myStringFunction(String str, String str1);

}

类别

public class RotateString {

/**
* @param args
*/

public static String onRotateString(MyString rotateString, String A, String B) {


return rotateString.myStringFunction(A, B);
}


public static void main(String[] args) {
// TODO Auto-generated method stub


MyString rotate = (A,B)->{

String results ="";

for(int i =0;i <A.length() ; ++i)

for(int j = 0; j < B.length() ; ++j)

if (A.charAt((i+j) % A.length()) != B.charAt(i))

results += A.charAt((i+j) % A.length()) != B.charAt(i);

return results;

};

System.out.println(onRotateString(rotate,"abcde","abcde"));

}

}

只是练习而已。输出:truetruetruetruetruetruetruetruetruetruetruetruetruetruetruetruetruetrue

最佳答案

根据轮换算法的性质,这是另一种策略:

String a = "abcde";
String b = "cdeab";

boolean result = a.length() == b.length() && (a + a).contains(b);

如果两个字符串具有相同的长度,并且 ba + a 的子字符串,则结果将为 true:

abcdeabcde
|||||
cdeab

关于java - 使用 Lambda 旋转字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49269106/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com