gpt4 book ai didi

objective-c - 字谜算法 Objective-C

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:10:16 26 4
gpt4 key购买 nike

我写了下面的代码来检查变位词想知道这是否完美&有没有更好的方法在 Objective-C 中实现相同的东西

-(BOOL) findAnagram :(NSString *) string1 :(NSString *) string2
{
int len = string1.length;
if (len != string2.length)
{
return false;
}

for (int i=0; i < len; i++)
{
int h = 0;
int q = 0;
for (int k = 0; k < len ; k ++)
{
if ([string1 characterAtIndex:i] == [string1 characterAtIndex:k])
{
h++;
}
if ([string1 characterAtIndex:i] == [string2 characterAtIndex:k])
{
q++;
}
}

if (h!=q)
{
return false;
}
}
return TRUE;
}

最佳答案

一个比你的性能更好的版本,它是一个 O(n ^ 2) 算法,是一个 O(n) 算法:

BOOL anagrams(NSString *a, NSString *b)
{
if (a.length != b.length)
return NO;

NSCountedSet *aSet = [[NSCountedSet alloc] init];
NSCountedSet *bSet = [[NSCountedSet alloc] init];

for (int i = 0; i < a.length; i++)
{
[aSet addObject:@([a characterAtIndex:i])];
[bSet addObject:@([b characterAtIndex:i])];
}

return [aSet isEqual:bSet];
}

关于objective-c - 字谜算法 Objective-C ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13905698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com