//找出字符串不重复字符最大长度
- (int)longestlength:(NSString*)str{
int a = 0;
NSMutableArray *arr = [NSMutableArray array];
for (int i = 0; i < str.length; i ++) {
[arr addObject:[str substringWithRange:NSMakeRange(i, 1)]];
}
for (int i = 0; i < arr.count - 1; i ++) {
int index = 0;
NSString *tempStr = arr[i];
for (int j = i + 1; j < arr.count ; j ++) {
if ([arr[j] isEqualToString:tempStr]) {
index = j - i;
if (index > a) {
a = index;
}
break;
}
else if (j == arr.count - 1) {
index = j - i;
if (index > a) {
a = index;
}
}
}
}
return a;
}
//字符串去重
- (NSString*)removeRepeat:(NSString*)str{
NSMutableArray *arr = [NSMutableArray array];
for (int i = 0; i < str.length; i ++) {
if ([arr containsObject:[str substringWithRange:NSMakeRange(i, 1)]]) {
continue;
}
else {
[arr addObject:[str substringWithRange:NSMakeRange(i, 1)]];
}
}
NSString *tempStr = [arr componentsJoinedByString:@""];
return tempStr;
}
//字符串反转
- (NSString*)fanzhuanString:(NSString*)str{
if (str.length <= 1) {
return str;
}
NSMutableArray *arr = [NSMutableArray array];
for (int i = 0; i < str.length; i ++) {
[arr addObject:[str substringWithRange:NSMakeRange(i, 1)]];
}
//两个指针一前一后开始向中间走
int a = 0;
int b = (int)(arr.count - 1);
//两两交换,如果数组总长度为单数,中间那个不需要管,所以循环次数只需要arr.count / 2;
for (int i = 0; i < arr.count / 2; i ++) {
NSString *tempStr = arr[a];
arr[a] = arr[b];
arr[b] = tempStr;
a ++;
b --;
}
return [arr componentsJoinedByString:@""];
}
//有序数组合并(如果是两个无序数组,那就先各自排序,某些排序算法我也自己写了一点,可以找一下我的文章)
- (NSArray*)sortTwoArrOne:(NSArray*)firstArr andTow:(NSArray*)secondArr{
if (firstArr.count == 0) {
return secondArr;
}
if (secondArr.count == 0) {
return firstArr;
}
NSMutableArray *muarr = [NSMutableArray array];
//第一个数组的指针
int a = 0;
//第二个数组的指针
int b = 0;
//不知道如何说,嘴笨,反正就是每次循环排列好一个数字(主要还是两个指针指向的数值做比较,两个指针向后走)
for (int i = 0; i < firstArr.count + secondArr.count ; i ++) {
//前两步判断是为了防止数组越界,总觉得有点蠢
if (a == firstArr.count) {
[muarr addObject:secondArr[b]];
b ++;
}
else if (b == secondArr.count) {
[muarr addObject:firstArr[a]];
a++;
}
else if ([firstArr[a] intValue] <= [secondArr[b] intValue]) {
[muarr addObject:firstArr[a]];
a++;
}
else {
[muarr addObject:secondArr[b]];
b++;
}
}
return muarr;
}
ios常见的面试题(一)
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...