已知字符串中的单词间由单个空格隔开,实现函数,返回字符串s中出现次数最多的单词与次数组成的字符串

来源:互联网 发布:数据挖掘要学哪些东西 编辑:程序博客网 时间:2024/05/17 06:17
/*
 传入:@"drink your drink don't drink others drink"
 返回:@"drink4"
 */
/*
 思路如下:
 */
-(NSString *)mostWordInString:(NSString *)s{
    NSMutableArray *muArr = [[NSMutableArray alloc]init];
    muArr = (NSMutableArray *)[s componentsSeparatedByString:@" " ];
   
    // NSLog(@"%@",muArr);
   
    int max=0;//最多次数
    int count = 0;//出现的次数
    int maxIdex = 0;//出现次数最多的下标
//第一个循环用来取出数组的每一个元素,和数组的每一个元素比较
    for (int i = 0; i < muArr.count; i++) {
        count = 0;//每一次出现次数先置为0
        
        //把第i个字符取出,方便下面的比较
        NSString * Str = [NSString stringWithFormat:@"%@",muArr[i]];
       
        //从数组的第一个字符串开始比较,逐渐和数组的每个元素都比较一次
        //这个循环主要是记录元素出现的次数和出现最多次的元素的下标
        for (int j = 0; j < muArr.count; j++) {
            //如果相等的话计数器加一
            if ([Str compare:[muArr objectAtIndex:j]]==NSOrderedSame) {
                count++;
            }
        }
        
        //每一循环完毕会获得元素出现的次数,如果比已经记录的最多次还要大就把此值赋给记录最多次的变量,同时把下表记录下来
            if (count > max ) {
                max = count;
                maxIdex = i;
            }
    }
    NSString *ret = [NSString stringWithFormat:@"%@%d",muArr[maxIdex],max];
    return ret ;
}

0 0