Java Set contains()
知道如何判断StringBuilder的存在吗?
我正在用Leetcode运行这个问题."查找唯一的二进制字符串".注意:这个问题不是关于解决Leetcode的,而是关于理解为什么会发生问题.https://leetcode.com/problems/find-unique-binary-string/description/个
给定一个字符串数组,每个字符串数组包含n个唯一的二进制字符串 长度为n的二进制字符串返回不出现的长度为n的二进制字符串 在麻木中.如果有多个答案,您可以返回其中任何一个.
Nums=["00","01"]
Code Output. "00."
Expected Answers Choice "10"个
Problem:个
当该数字存在于集合中时,该代码在!currentResults.contains(currentString)
处失败,其中CurentString值为"00".
将其更改为!currentResults.contains(currentString.toString()))
将使其成功.我正在努力理解这背后的原因.
Code:个
List<String> results = new ArrayList<>();
Set<String> currentResults = new HashSet<>();
String finalString;
int numsLength;
public String findDifferentBinaryString(String[] nums) {
for (String data: nums) {
currentResults.add(data);
}
if (nums.length == 0) {
return "";
}
numsLength = nums.length;
getDFS(nums, new StringBuilder(""));
return finalString;
}
public void getDFS(String[] nums, StringBuilder currentString) {
if (finalString != null ) {
return;
}
if (currentString.length() == numsLength && !currentResults.contains(currentString)) {
finalString = currentString.toString();
return;
}
if (currentString.length() == numsLength) return;
for (int i = 0; i <= 1; i++) {
currentString.append(String.valueOf(i));
getDFS(nums,currentString);
currentString.deleteCharAt(currentString.length() - 1);
}
}