ops [i]和[calc [j]]之间的空格是什么意思?什么比较。
private static void getAllWords(String letterPool, String currWord) {
//Add to possibleWords when valid word
if (letterPool.equals("")) {
//System.out.println("");
} else if(currWord.equals("")){
for (int i = 0; i < letterPool.length(); i++) {
String curr = letterPool.substring(i, i+1);
String newLetterPool = (letterPool.substring(0, i) + letterPool.substring(i+1));
if(dict.contains(curr)){
possibleWords.add(curr);
}
boolean prefixInDic = binarySearch(curr);
if( !prefixInDic ){
break;
} else {
getAllWords(newLetterPool, curr);
}
}
} else {
//Every time we add a letter to currWord, delete from letterPool
//Attach new letter to curr and then check if in dict
for(int i=0; i<letterPool.length(); i++){
String curr = currWord + letterPool.substring(i, i+1);
String newLetterPool = (letterPool.substring(0, i) + letterPool.substring(i+1));
if(dict.contains(curr)) {
possibleWords.add(curr);
}
boolean prefixInDic = binarySearch(curr);
if( !prefixInDic ){
break;
} else {
getAllWords(newLetterPool, curr);
}
}
}
private static boolean binarySearch(String word){
int max = dict.size() - 1;
int min = 0;
int currIndex = 0;
boolean result = false;
while(min <= max) {
currIndex = (min + max) / 2;
if (dict.get(currIndex).startsWith(word)) {
result = true;
break;
} else if (dict.get(currIndex).compareTo(word) < 0) {
min = currIndex + 1;
} else if(dict.get(currIndex).compareTo(word) > 0){
max = currIndex - 1;
} else {
result = true;
break;
}
}
return result;
}
答案 0 :(得分:0)
在这种情况下,该值不是比较,它只是被检查为true-ish。
例如,这些值为true-ish:
"hello"
1
234
{}
true
(当然)相反,这些值不是:
0
null
false
(当然)undefined
所以,如果你这样做:
if (true) { console.log('This code will be run') }
if (234) { console.log('This one too!') }
if (0) { console.log('But this one won\'t') }
了解某个值是否为true的好方法是在它之前放置一个双!
:
console.log(!!0) // -> false
console.log(!!'hello') // -> true
这是有效的,因为!
反转了值:如果它是真值,则会将其转换为实际 false
,反之亦然。而且,如果你反转两次,你会得到你先拥有的东西。
现在,检查为true-ish的值位于2D数组中,如@ user1767754所示。看看这个:
const myArray = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]
]
如何访问7
?首先,你得到它的包含数组,这是第二个:myArray[1]
。完成此操作后,您只需选择7
,就像您通常所做的那样:myArray[1][2]
。
您可以将此视为表格。首先,选择行(1
),然后选择列(2
)。
但是你可以制作3D阵列,4D,无限制。
但是,如果值2
位于另一个名为indices
的数组中,如下所示:
const indices = [1, 2, 3, 4]
好吧,您可以myArray[1][indices[1]]
访问7
。
然后,括号之间的空格无关紧要(something[1] [2]
与something[1][2]
相同)。
希望它能帮助您理解您在问题中发布的代码。