力扣第255场周赛题目
- 刷题链接
https://leetcode-cn.com/problems/find-unique-binary-string/
- 题目描述
给你一个字符串数组 nums ,该数组由 n 个 互不相同 的二进制字符串组成,且每个字符串长度都是 n 。请你找出并返回一个长度为 n 且 没有出现 在 nums 中的二进制字符串。如果存在多种答案,只需返回 任意一个 即可。
示例 1:
输入:nums = [“01”,“10”]
输出:“11”
解释:“11” 没有出现在 nums 中。“00” 也是正确答案。
- 分析
应用随机数,生成长度为nums .length的组成内容为0和1的字符串,遍历数组中字符串进行比较,如相同则重新生成,直至所生成字符串与数组中所有字符串都不相等时将其输出。
- 参考解题
class Solution {
public String findDifferentBinaryString(String[] nums) {
String arrString = getRandomString(nums.length);
for( int j = 0; j < nums.length ;++j){
if( arrString.equals(nums[j])){
arrString = getRandomString(nums.length);
--j;
}
}
return arrString;
}
public static String getRandomString(int length){
String str="01";
Random random = new Random();
StringBuffer sb = new StringBuffer();
for(int i = 0;i < length; i++){
int number = random.nextInt(2);
sb.append(str.charAt(number));
}
String arrString = sb.toString();
return arrString;
}
}