Tag: recursion

如何生成所有可能的组合?

我目前正在尝试从一个Strings Array中创build一个所有可能组合的Set ,每个元素只包含一个字母。 Array本身可以包含相同的字母两次或甚至更多,他们应该只发生在经常使用。 该Set稍后将包含从至less2个字母到给定Array长度的所有组合。 我在这里search了stackoverflow,但只发现忽略事实的排列函数,每个字母应该只发生在经常使用。 这是我第一个Swift 2项目,所以请原谅我greenhornish性格:) 我想要的是 var array = ["A", "B", "C","D"] var combinations: Set<String> … <MAGIC> … print(combinations) // "AB", "ABC", "ABD", "ABCD", "ABDC", "AC", "ACB", "ACD", "ACBD", "ACDB", and so on … 我目前的做法 func permuation(arr: Array<String>) { for (index, elementA) in arr.enumerate() { //1..2..3..4 var tmpString = elementA var tmpArray […]

recursion遍历未知结构的NSDictionary

有没有人做过一个未知结构的NSDictionaryrecursion遍历? 我想采取任何NSDictionary,并按层次顺序处理每个级别。 1)这些数据来自validation的JSON。 可以肯定地说,从SBJSON(JSON Framework)这样的框架创build的NSDictionary只会导致嵌套的字典,数组和任意叶子的组合? 2)如何使用适用于数组和字典的快速枚举来进行generics遍历? 用下面的代码,一旦我得到一个数组中的字典,它停止遍历。 但是,如果我在数组条件中继续recursion(以检查数组中的字典),它会在下一次id value = [dict valueForKey:key];迭代中使用bar id value = [dict valueForKey:key]; 与-[__NSCFDictionary length]: unrecognized selector sent to instance SIGABRT。 我不知道为什么这会是一个问题,因为我已经通过顶级字典(其中发现了子级字典数组)的那一行。 -(void)processParsedObject:(id)dict counter:(int)i parent:(NSString *)parent { for (id key in dict) { id value = [dict valueForKey:key]; NSLog(@"%i : %@ : %@ -> %@", i, [value class], parent, key); if […]