OC 找出在只有空格字母的字符串中出现次数最多的单词

来源:互联网 发布:android libc 源码 编辑:程序博客网 时间:2024/04/27 01:51

如果有一个字符串只有空格和字符,如何找到出现次数最多的单词?我的想法是将字符串按照空格切割,然后就会获得所有单词组成的数组,然后在创建一个int类型的数组,,用来记录每一个单词在字符串中出现的次数,例如例子中的"drink your drink don't drink others drink",数组num循环一边之后的数据是[4,1,3,1,2,1,1],分别表示NSArray 的array1中的单词[drink,your,drink,don't,drink,others,drink]自己及其出现在后面的次数(虽然有drink是重复的,但是不用担心,我们目标只是找出现次数最多的单词,也就是只需要找到num数组中数据最大的值及其下标即可,因为在array1中单词的循序与num数组中的数据是一一对应的)

NSString * string=@"drink your drink don't drink others drink";


    NSArray * array1=[stringcomponentsSeparatedByCharactersInSet:[NSCharacterSetcharacterSetWithCharactersInString:@" "]];

//    NSLog(@"%@",array1);

    NSMutableArray * ma=[NSMutableArrayarrayWithArray:array1];

//    NSLog(@"%@",ma);

    int num[20];

    for(int i=0;i<20;i++){

        num[i]=1;

    }

    int index=0;

    for(int i=0;i<[macount];i++){

        for(int j=i+1;j<[macount];j++){

            if([ma[i] isEqualToString:ma[j]]){

                num[index]++;

            }

        }

        index++;

    }

    int max=-1;

    int tmp1=0;

    for(int i=0;i<index;i++){

        if(max<num[i]){

            max=num[i];

            tmp1=i;

        }

    }

    NSLog(@"%@%d",array1[tmp1],max);


0 0
原创粉丝点击