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.18 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.17 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.16 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.15 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.14 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.13 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.12 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.11 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.10 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.9 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.8 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.7 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.6 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.5 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.4 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.3 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.2 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.1 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.1.0 tracks/objective-c/exercises/sublist/SublistExample.m
trackler-2.2.0.6 tracks/objective-c/exercises/sublist/SublistExample.m