本题的题意是以第一个出现的字母作为参照,只要之后出现相同的字母并且和第一个字母不相邻,那么就删除。为防止删除某些字符之后,把之前不相邻的重复字符串转化为相邻字符串,所以可以先用空格替换掉需要删除的字符,最后对数组里面的空格进行处理。
-(void)removeRepeat:(NSString *)aNum
{
NSMutableArray *mArr = [[NSMutableArray alloc]initWithCapacity:10];
for (int i = 0;i < aNum.length;i++)
{
[mArr addObject:[aNum substringWithRange:NSMakeRange(i,1)]];
}
NSLog(@"- %@", mArr);
[self compareNum:mArr];
NSLog(@"%@",mArr);
}
//比较是否相等
-(NSMutableArray *)compareNum:(NSMutableArray *)mArr
{
int count = mArr.count;//重新定义了,count不会减一
for (int j = 0; j < count - 1; j++)
{
for (int i = j; i < count - 1-1-1; i++)
{
NSLog(@" %@ %@",[mArr objectAtIndex:j],[mArr objectAtIndex:i + 2]);
NSString *a = [mArr objectAtIndex:j];
NSString *b = [mArr objectAtIndex:i+2];
if ([a isEqualToString:b])
{
[mArr replaceObjectAtIndex:i + 2 withObject:@" "];
}
}
}
return mArr;
}