/思路:先把两个字符串的所有字符存入数组array1,在比较数组中的元素,得到相同元素的位置存入数组sameArray;再遍历数组array1,去除元素位置属于sameArray的元素,剩下的元素存入数组array2;再转化成字符串
-(NSString *)method1WithString1:(NSString *)str1 andString2:(NSString *)str2{
// NSString *str1 = @"12345";
// NSString *str2 = @"34567";
NSMutableArray *array1 = [[NSMutableArray alloc] init];
NSMutableArray *array2 = [[NSMutableArray alloc] init];
NSMutableArray *sameArray = [[NSMutableArray alloc] init];
for (int i = 0; i < [str1 length]; i++) {
NSString *tmpStr = [str1 substringWithRange:NSMakeRange(i, 1)];
[array1 addObject:tmpStr];
}
for (int i = 0; i < [str2 length]; i++) {
NSString *tmpStr = [str2 substringWithRange:NSMakeRange(i, 1)];
[array1 addObject:tmpStr];
}
for (int i = 0; i < array1.count - 1; i++) {
NSString *compareStr1 = [array1 objectAtIndex:i];
for (int j = i+1; j < array1.count; j++) {
NSString *compareStr2 = [array1 objectAtIndex:j];
if ([compareStr1 isEqualToString:compareStr2]) {
[sameArray addObject:[NSNumber numberWithInt:j]];
}
}
}
// NSLog(@"sameArray = %@",sameArray);
for (int i = 0;i < array1.count;i++) {
NSNumber *index = [NSNumber numberWithInt:i];
if (![sameArray containsObject:index]) {
[array2 addObject:[array1 objectAtIndex:[index intValue]]];
}
}
// NSLog(@"array2 = %@",array2);
NSString *resultStr = [[NSString alloc] init];
for (NSString *obj in array2) {
// NSLog(@"");
resultStr = [resultStr stringByAppendingFormat:@"%@",obj];
}
[array1 release];
[array2 release];
[sameArray release];
// NSLog(@"resultStr = %@",resultStr);
return [resultStr autorelease];
}
-(NSString *)method3WithNumString1:(NSString *)a1 andNumString2:(NSString *)a2{
// NSString *a1 = @"112233445566778899";
// NSString *a2 = @"998877665544332211";
NSMutableArray *arrayA1 = [[NSMutableArray alloc] initWithCapacity:MAXLEN];
NSMutableArray *arrayA2 = [[NSMutableArray alloc] initWithCapacity:MAXLEN];
NSMutableArray *arrayV1 = [[NSMutableArray alloc] initWithCapacity:MAXLEN];
NSMutableArray *arrayV2 = [[NSMutableArray alloc] initWithCapacity:MAXLEN];
NSMutableArray *arrayV3 = [[NSMutableArray alloc] initWithCapacity:MAXLEN];
for (int i = 0; i < [a1 length]; i++) {
NSString *tmpStr = [a1 substringWithRange:NSMakeRange(i, 1)];
[arrayA1 addObject:tmpStr];
}
for (int i = 0; i < [a2 length]; i++) {
NSString *tmpStr = [a2 substringWithRange:NSMakeRange(i, 1)];
[arrayA2 addObject:tmpStr];
}
for (int i = 0; i < arrayA1.count; i++) {
NSString *obj = [arrayA1 objectAtIndex:arrayA1.count-1-i];
[arrayV1 addObject:[NSNumber numberWithInt:[obj intValue]]];
}
for (int i = 0; i < arrayA2.count; i++) {
NSString *obj = [arrayA2 objectAtIndex:arrayA2.count-1-i];
[arrayV2 addObject:[NSNumber numberWithInt:[obj intValue]]];
}
for (int i = 0; i < MAXLEN; i++) {
int num1;
int num2;
if (i >= arrayV1.count) {
num1 = 0;
}else{
num1 = [[arrayV1 objectAtIndex:i] intValue];
}
if (i >=arrayV2.count) {
num2 = 0;
}else{
num2 = [[arrayV2 objectAtIndex:i] intValue];
}
[arrayV3 addObject:[NSNumber numberWithInt:num1 + num2]];
}
for (int i = 0; i < MAXLEN; i++) {
int numi = [[arrayV3 objectAtIndex:i] intValue];
int numi1;
if (i+1 > MAXLEN-1) {
numi1 = 0;
}else{
numi1 = [[arrayV3 objectAtIndex:i+1] intValue];
}
if (numi >= 10 && i+1 < MAXLEN) {
[arrayV3 replaceObjectAtIndex:i+1 withObject:[NSNumber numberWithInt:numi1 + numi/10]];
[arrayV3 replaceObjectAtIndex:i withObject:[NSNumber numberWithInt:numi%10]];
}
}
int z = 0;
NSString *str = [[NSString alloc] init];
for (int i = MAXLEN - 1; i>=0; i--) {
if (z == 0) {
if ([[arrayV3 objectAtIndex:i] intValue] != 0) {
// NSLog(@"%d",[[arrayV3 objectAtIndex:i] intValue]);
str = [str stringByAppendingFormat:@"%d",[[arrayV3 objectAtIndex:i] intValue]];
z = 1;
}
}else{
// NSLog(@"%d",[[arrayV3 objectAtIndex:i] intValue]);
str = [str stringByAppendingFormat:@"%d",[[arrayV3 objectAtIndex:i] intValue]];
}
}
// NSLog(@" z = %d",z);
if (z == 0) {
str = [str stringByAppendingFormat:@"0"];
}
// NSLog(@"str = %@",str);
return [str autorelease];
}