Objective-C (iOS) заменяет все вхождения Wildcard в строке на алфавит - PullRequest
1 голос
/ 08 июля 2011

Прежде всего, это не домашняя работа!:)

Скажем, у меня есть строка 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];

                ......
                }
            }
        }

и тогда я потерялся.Я на самом деле не думаю, что я на правильном пути.Как я уже сказал, рекурсия меня очень беспокоит:)

Кто-нибудь имеет представление о том, что делать?

Итак, получив несколько вопросов, я просто скажу, что эта проблема должнасделать так, чтобы пользователь знал, сколько анаграмм я могу сделать из этих результирующих слов.У меня есть быстрый способ сделать анаграммы для списка слов, и я просто хочу создать список слов, из которого должны быть сделаны анаграммы.Я уверен, что есть лучший способ, чем вышеупомянутый метод.Я прошу помочь найти лучший способ создания массива.

1 Ответ

2 голосов
/ 08 июля 2011

Попробуйте это,

NSArray *wildCardArray;
NSArray *countOfWildCardArray = [wordToSearch componentsSeparatedByString:@"?"];
        int countOfWildCard = [countOfWildCardArray count] - 1;
        if (countOfWildCard > 0)
        {
            for(char a = 'a'; a <= 'z'; a++)
             { 
                for(char b = 'a'; b <= 'z'; b++)
                {  
                     NSString *tempStringA=[NSString stringWithFormat:@"%@%c%@%c",[countOfWildCardArray objectAtIndex:0],a,[countOfWildCardArray objectAtIndex:1],b];
                     [wildCardArray addObject:tempStringA];
                }
            }
        }
...