已经找工作很久了,简历就像是石沉大海,一点回音都没有,今天下午收到一个回复,内容如下:
您好!麻烦您用任何熟悉的编程语言实现function versionCompare(v1, v2)(版本号比较)函数及测试用例。对任意软件的版本号进行大小比较,输入参数为两个版本号(格式情况请自行考虑),目标是做成库给外部开发者用。不得使用现成的版本比较函数。重点考察各类情况处理。写好后截图给我们就行。
简单理解后,是让写一个版本比较的函数。于是乎迅速码code,便写成了这样的功能
// 方法调用
- (void)versionCompareFirst:(NSString *)first andVersionSecond: (NSString *)second
{
NSArray *versions1 = [first componentsSeparatedByString:@"."];
NSArray *versions2 = [second componentsSeparatedByString:@"."];
NSMutableArray *ver1Array = [NSMutableArray arrayWithArray:versions1];
NSMutableArray *ver2Array = [NSMutableArray arrayWithArray:versions2];
// 确定最大数组
NSInteger a = (ver1Array.count> ver2Array.count)?ver1Array.count : ver2Array.count;
// 补成相同位数数组
if (ver1Array.count < a) {
for(NSInteger j = ver1Array.count; j < a; j++)
{
[ver1Array addObject:@"0"];
}
}
else
{
for(NSInteger j = ver2Array.count; j < a; j++)
{
[ver2Array addObject:@"0"];
}
}
// 比较版本号
int result = [self compareArray1:ver1Array andArray2:ver2Array];
if(result == 1)
{
NSLog(@"V1 > V2");
}
else if (result == -1)
{
NSLog(@"V1 < V2");
}
else if (result ==0 )
{
NSLog(@"V1 = V2");
}
}
// 比较版本号
- (int)compareArray1:(NSMutableArray *)array1 andArray2:(NSMutableArray *)array2
{
for (int i = 0; i< array2.count; i++) {
NSInteger a = [[array1 objectAtIndex:i] integerValue];
NSInteger b = [[array2 objectAtIndex:i] integerValue];
if (a > b) {
return 1;
}
else if (a < b)
{
return -1;
}
}
return 0;
}
经测试可用,显示如下图
于是感觉完成任务了,便发了过去,收到如下回复