我正在做一个家庭作业问题。我们要创建一个字典,我们应该创建的方法之一称为匹配。我们的教育工作者没有告诉我们如何做到这一点,我没有在我们的教科书中找到它。以下是标准:
创建一个匹配方法:给定两个字符串,如果两个字符串相互比较,它将返回true。紧密度是根据为此分配目的匹配的字符数来衡量的,如果两个字符串以精确的方式具有三个匹配的字符,则会要求您返回true。
我试图进行顺序搜索,但知道这不是正确的方法。我很难用这个,知道我不应该这样做。
public int findWord(String [] words,String searchWord, String wordLength) {
String word;
boolean found = false;
word = null;
while(word != wordLength && !found)
if(words[]==searchWord)
found = true;
else
word++;
return searchWord;
}
我知道这是错的。
发布于 2019-04-15 11:10:43
我猜你的意思是给一个字典(在这种情况下是单词[])是否有一个特殊的单词(searchWord)。此外,wordLength应该是一个整数,以使其合理。如果字典中有单词,则此函数返回true。如上所述,匹配标准是一个单词和searchWord至少有三个共同字符。
public static boolean findWord(String [] words,String searchWord, int wordLength) {
boolean found = false;
for(int i=0; i != words.length;i++){
if(words[i].length() == wordLength){ // If wordlengths are different eliminate this word
int matchCount = 0;
for(int j=0;j<searchWord.length();j++){
for(int k=0;k<wordLength;k++) { // For all possibilities we need two for loops for match check
if (words[i].charAt(k) == searchWord.charAt(j))
matchCount++;
}
}
if(matchCount>=3){
found = true; // If this does not run, found will stay as false
}
}
}
return found;
}
发布于 2019-04-15 12:15:09
处理此任务可能最容易,您认为字符串是一个字符数组(如C)。如果是这种情况,您所要做的就是遍历一个数组,并检查该索引处每个字符串的值。这是一个例子,如果我们改为循环数组:
public boolean isClose(int[] a, int[] b) {
int closeness =0;
for(int i=0; i< a.length; i++)
If (a[i] == b[i] ) {
closeness++;
}
}
return closeness >= 3;
}
但是,您需要修复此代码中的一些问题。这里有几个让你入门:
之后,您可以考虑优化一下这个功能
https://stackoverflow.com/questions/-100006586
复制相似问题