- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在网上查了这个,没有太多结果,因为很难用几句话来描述。
基本上,我需要一个函数,例如 puntil
,它接受参数 string
。基本上,函数会置换直到字符串等于参数。
例如,如果您运行 puntil('ab')
,它应该在函数内部执行:
一个bCd电子FGH我jk升米nopqr秒吨你vwX是z一个ab !!匹配
另一个例子,对于 puntil('abcd')
它将执行
一个bCd电子FGH我jk升米nopqr秒吨你vwX是z一个ab交流电广告ae自动对焦银啊艾杰啊阿尔是一个奥应用程序水ar作为在金影音哇斧头哎呀z
...等等等等..直到它匹配 abcd。
基本上是无限排列,直到它匹配为止。
有什么想法吗?
最佳答案
这是 fiddle
var alphabet = ['a','b','c'];//,'d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];
var output = "";
var match = "cccc"; //<----------- match here
//This is your main function
function permutate() {
var d = 0; // d for depth
while (true) {
//Your main alphabet iteration
for (var i=0; i<alphabet.length; i++){
//First level
if (d === 0) {
console.log(alphabet[i])
output = alphabet[i];
}
else
iterator(alphabet[i], d); //Call iterator for d > 0
if (output === match)
return;
}
d++; //Increase the depth
}
}
//This function runs n depths of iterations
function iterator(s, depth){
if (depth === 0)
return;
for (var i=0; i<alphabet.length; i++){
if (depth > 1)
iterator(s + alphabet[i], depth - 1)
else {
console.log(s + alphabet[i]);
output = s + alphabet[i];
}
if (output === match)
return;
}
};
解释:
你的程序需要像这样遍历字母表树
[a]
-[a]
-[a]
-[a]...
-[b]...
[b] ...
-[b] -
-[a]...
-[b]...
[b] - ...
[c] - ...
如果不是因为您需要先完成每个深度的要求,这可以通过传统的递归函数轻松完成。
因此我们需要一个特殊的iterator(s, depth)
函数,它可以执行请求的嵌套迭代次数(深度)。
所以主函数可以调用深度递增的迭代器(d++)。
就这些了!
警告:这只是一个原型(prototype)。这是可以优化和改进的。它使用全局变量以便于演示。您的真实程序应该避免使用全局变量。如果您的匹配词太长,我还建议在 setTimeout
中调用 iterator()
。n
深度只能受限于您的资源。
关于javascript - 置换字符串直到它匹配一些输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33887599/
我需要在 JavaScript 中的笛卡尔坐标和球坐标之间进行转换。我在论坛上浏览了一下,没有找到我要找的东西。 现在我有这个: this.rho = sqrt((x*x) + (y*y) + (z*
有没有matrix3d可以像这样把矩形变成梯形的?我知道常规的 2d 矩阵变换只能以平行四边形结束,因为您只能有效地倾斜和旋转。 div { width: 300px; height:
关于这个例子(d3.j radial tree node links different sizes),我想知道是否可以在 d3.js 中混合径向树和直线树。 对于我的 jsFiddle 示例:htt
我尽量把标题写得最好,但我不确定如何准确描述这里发生的事情,所以请随时更正。 我想使用 › 直 Angular 引号 (›) 而不是 > 直 Angular 引号 (>),虽然 › 字符比 > 短,但
我正在尝试使用 CSS 创建一个具有圆边的矩形棱柱,如下图所示。 到目前为止,我已经指定了顶部和底部的边界半径。问题是我不知道如何让另一边的左右边缘向内 curl 。因此,拐 Angular 处不应有
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 去年关闭。 社区去年审查了是否重
首先,我刚刚开始学习 HTML 和 CSS。 我想如何使用这段代码: https://codepen.io/martinjkelly/pen/vEOBvL .container { width:
我是一名优秀的程序员,十分优秀!