gpt4 book ai didi

java - 尝试设计一个函数 : hasCheated(String s1, String s2, int N) 来计算

转载 作者:行者123 更新时间:2023-12-02 02:32:21 25 4
gpt4 key购买 nike

我收到这样的问题:一位教授想看看两个学生在写论文时是否作弊。设计一个函数:hasCheated(String s1,String s2, int N),如果两个字符串具有长度为 N 的公共(public)子字符串,则该函数的计算结果为 true。实现后的其他问题。假设您无法使用 String.contains() 和 String.substring()。您将如何实现这一点?

这就是我试图解决这个问题的方法:

public class exercise {


public static void main(String[] args){
String s1 ="";
String s2 = "";
int n=0;

boolean s3;
for(int i=0; i<=s1.length();i++){
if(i+n <=s1.length()){
if(s3=s1.contains(s2.substring(i, i+n)));

System.out.printf("HasCheated\n ",s3);
//return true;
}
}

//return false;


}


}

我的测验是,我做的事情正确吗?提前致谢。

最佳答案

所以基本上这就是我的方法:

如果您想这样做,@Pritam 是正确的,但是,假设您无法使用 String.contains() 和 String.substring()。我就是这样做的。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class exercise{
public static void main(String[] args) {

String s1="home";
String s2="homework";
int n=4;
exercise p=new exercise();

if(p.hasCheated(s1, s2, n))
{
System.out.println("Student Cheated ");
return;
}

System.out.println("Not Cheated");



}

public boolean hasCheated(String s1,String s2, int N)
{
boolean s3=true;
ArrayList<String> al=new ArrayList<String>();
ArrayList<String> bl=new ArrayList<String>();

al.addAll(getInfo(s1,N));
bl.addAll(getInfo(s2,N));
al.retainAll(bl);
if(al.size()==0)
{
s3=false;
}
return s3;

}

public List<String> getInfo(String s,int n)
{
ArrayList<String> inf=new ArrayList<String>();
inf.clear();
String myStr=Arrays.toString(s.split("(?<=\\G.{4})"));

Scanner sc=new Scanner(myStr).useDelimiter(",");
while(sc.hasNext())
{
String myString=sc.next().replaceAll("\\W", "");

inf.add(myString);
}

return inf;
}


}

关于java - 尝试设计一个函数 : hasCheated(String s1, String s2, int N) 来计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46899857/

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