有一个字符串,和一个数组,如果数组里面包含这个字符则删除掉这个字符,不包含则把这个字符串添加到 数组中,使用object-c 实现
![]() | 1 blacktulip 2015-01-22 18:21:23 +08:00 好的目... 可是看到最後一句跪了 |
![]() | 2 blacktulip 2015-01-22 18:24:11 +08:00 「如果数组里面包含这个字符则删除掉这个字符,不包含则把这个字符串添加到 数组中」 面到底是字符?是字符串?是既有字符又有字符串?比的候是字符串面逐取出字符跟面的元素比,是拿整字符串去比? |
![]() | 3 qdwang 2015-01-22 18:57:35 +08:00 via Android 看了半天没看懂题目。。。我太笨了 |
![]() | 4 wangccddaa OP @blacktulip 全部是字符串,坑不在这里 |
![]() | 5 FrankFang128 2015-01-22 19:06:27 +08:00 via Android 哪里有意思 |
![]() | 6 wangccddaa OP @qdwang 就是一个数组里面有若干的字符串,给定一个字符串,判定在不在数组里,在的话则删除,不在则添加到数组中去。 |
![]() | 7 wangccddaa OP @FrankFang128 代码实现很简单,但在运行的时候就有趣了,和多线程有关,写的好的算法可能不会遇到这个问题。就是在实际运行环境中遇到的一个问题。 |
![]() | 8 47jm9ozp 2015-01-22 19:12:35 +08:00 就是维护一个内容为字符串的set,向里面插入 lz这表达能力。。。。 |
![]() | 9 blacktulip 2015-01-22 19:28:29 +08:00 array.include?(string) ? array.delete(string) : array.push(string) 好吧我只懂一 Ruby ,ObjC 有什坑? |
![]() | 10 ooops 2015-01-22 21:27:05 +08:00 另: Objective-C/ObjC/OC |
![]() | 11 nilennoct 2015-01-22 23:20:58 +08:00 @wangccddaa 不是有互斥锁吗,为什么多线程会有坑== |
12 rangercyh 2015-01-23 08:59:05 +08:00 看了前面觉得题目没什么啊,可看到最后OBJC实现,登时觉得高大上啊。。。。 |
13 hyzjshwo 2015-01-23 13:36:30 +08:00 lz出的什么题啊,是不是有个前提在多线程中操作?或者大字符串或者大数组? |
14 cr7bean 2016-01-27 10:18:23 +08:00 这个问题可以分解为两个过程 1 查找字符串位置 2 根据需求添加或删除字符串 代码如下: NSString *name = @"yang"; NSArray *array = @[@"wang", @"li", @"zhang", @"san"]; NSMutableArray *newArray = [NSMutableArray arrayWithArray: array]; __block NSUInteger index = 0; //查找字符串位置 [newArray enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { if ([name isEqualToString: (NSString*)obj]) { index = idx; * stop = YES; return; }else{ index = newArray.cont + 1; } }]; //根据需求添加或删除字符串 if (index == newArray.count + 1) { [newArray addObject: name]; }else{ [newArray removeObjectAtIndex: index]; } |