【发布时间】:2011-07-08 04:53:36
【问题描述】:
首先,这不是作业! :)
假设我有一个 NSString:"the?or?" 对于每个通配符,我希望字符串返回至少 26 个(不包括 'ñ' 和 'ng' 似乎已被菲律宾等一些国家添加)。所以一个带有 2 ? 的词会给我 26^2(我认为)的结果。
我希望它返回以下 NSArray:
theaora
theaorb
theaorc
...
thezora
thezorb
thezorc
...
thezorx
thezory
thezorz
由于这是递归(我假设)我遇到了问题...
我正在做这个:
NSArray *countOfWildCardArray = [wordToSearch componentsSeparatedByString:@"?"];
int countOfWildCard = [countOfWildCardArray count] - 1;
if (countOfWildCard > 0)
{
for ( NSInteger i = 0; i < countOfWildCard; i++)
{
NSLog(@"Looking for wildcard #%i",i);
for(char a = 'a'; a <= 'z'; a++)
{
NSString *tempStringA = [NSString stringWithString:wordToSearchFor];
......
}
}
}
然后我就迷路了。我实际上不认为我在正确的轨道上。就像我说的,递归很困扰我:)
有人知道做什么吗?
因此,在收到几个问题后,我只想说明这个问题与让用户知道我可以从这些结果单词中生成多少字谜有关。我有一种为单词列表制作字谜的快速方法,我只是想创建要制作字谜的单词列表。我相信有比上述方法更好的方法。我要求的是帮助找到创建数组的最佳方法。
【问题讨论】:
-
你为什么要这个?如果您要循环查看结果并尝试将它们与字符串匹配,那么这一定是我听说过的 glob 效率最低的实现。
-
@kevinballard 我现在已经在帖子的最后一段回答了你的问题。谢谢!
-
你的新噩梦:
??????????。享受生成 1.5 TB 字符串的乐趣。 -
我知道。有大约 6 个字符的限制......但我理解危险。
-
如果你只需要告诉用户你可以生成多少,你为什么要实际生成它们?只需计算
"?"的数量,然后将 26 提高到该次方即可。
标签: iphone objective-c regex replace wildcard