Sha256: ec56f56db5cc3144e52efeb1d879c1e91e0a56fe2d048a3bbb49afe2812f3d10

Contents?: true

Size: 1.64 KB

Versions: 262

Compression:

Stored size: 1.64 KB

Contents

#import "SublistExample.h"

@implementation SublistExample

+ (SublistKind)classifierForFirstList:(NSArray *)firstArray andSecondList:(NSArray *)secondArray { //!OCLint
    
    if ([firstArray isEqualToArray:secondArray]){
        return SublistKindEqual;
    } else if (firstArray.count == 0 || secondArray.count == 0) {
        if (firstArray.count == 0) {
            return SublistKindSublist;
        }
        
        return SublistKindSuperlist;
    } else if (firstArray.count != secondArray.count) {
        int i = 0; //!OCLint
        int count = 0;
        NSMutableArray *smallerArray = [NSMutableArray array];
        
        unsigned long iterations = 0;
        iterations = MAX(firstArray.count, secondArray.count) - ((MIN(firstArray.count, secondArray.count) - 1));
        
        while (iterations > 0) {
            int j = i; //!OCLint
            
            while (count <= (MIN(firstArray.count, secondArray.count) - 1)) {
                if (firstArray.count > secondArray.count) {
                    [smallerArray addObject:firstArray[j]];
                } else {
                    [smallerArray addObject:secondArray[j]];
                }
                
                j++;
                count++;
            }
            
            if ([smallerArray isEqualToArray:firstArray]) {
                return SublistKindSublist;
            } else if ([smallerArray isEqualToArray:secondArray]) {
                return SublistKindSuperlist;
            }
            
            [smallerArray removeAllObjects];
            i++;
            count = 0;
            iterations--;
        }
    }
    
    return SublistKindUnequal;
}
@end

Version data entries

262 entries across 262 versions & 1 rubygems

Version Path
trackler-2.2.1.159 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.158 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.157 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.156 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.155 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.154 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.153 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.152 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.151 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.150 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.149 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.148 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.147 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.146 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.145 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.144 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.143 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.142 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.141 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.140 tracks/objective-c/exercises/sublist/SublistExample.m