我知道这里有很多这样的问题,但我只读了其中的6个,它们主要用于生成任意长度(var list = generateStates(3); // -> ['000', '111', '011', '001', '100', '110', '101', ... ]
)和/或仅有的字符集的所有组合提供的字符串或列表的长度。
我试图弄清楚如何做是代表给定长度的所有可能的二进制字符串(在基数2中编码),在阅读了我能找到的所有问题之后,我就会这样做。仍然无法弄清楚应该如何设计功能。
我的目标是拥有以下功能:
didReceiveRemoteNotification
棘手的部分是我认为我需要在没有递归的情况下执行此操作,因为我希望使用更长的二进制字符串来执行此操作,并且递归不能保持那么深(不超过最大调用堆栈)。
答案 0 :(得分:1)
尝试
从给定的n = 3开始并采用以下值
Pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified)
考虑到这一点,您可以通过添加一个来从给定组合生成下一个值。 (或者如果你拿一个数组,那么执行binary decimal
------ -------
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
并构建一个新数组。)
答案 1 :(得分:1)
function generateStates(n){
var states = [];
// Convert to decimal
var maxDecimal = parseInt("1".repeat(n),2);
// For every number between 0->decimal
for(var i = 0; i <= maxDecimal; i++){
// Convert to binary, pad with 0, and add to final results
states.push(i.toString(2).padStart(n,'0'));
}
return states;
}