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

在只包含空格和字母的字符串中,通过分割字符串获取单词数组,使用额外的整型数组记录每个单词出现的次数。遍历数组比较次数找出最常出现的单词及其出现次数。
摘要由CSDN通过智能技术生成

如果有一个字符串只有空格和字符,如何找到出现次数最多的单词?我的想法是将字符串按照空格切割,然后就会获得所有单词组成的数组,然后在创建一个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=[string componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@" "]];

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

    NSMutableArray * ma=[NSMutableArray arrayWithArray:array1];

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

    int num[20];

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

        num[i]=1;

    }

    int index=0;

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

        for(int j=i+1;j<[ma count];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);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值