有一个字符串,和一个数组,如果数组里面包含这个字符则删除掉这个字符,不包含则把这个字符串添加到 数组中,使用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
ooxxcc 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.count + 1; } }]; //根据需求添加或删除字符串 if (index == newArray.count + 1) { [newArray addObject: name]; }else{ [newArray removeObjectAtIndex: index]; } |