首页 > 其他分享 >找出一个字符串中出现次数最多的一个字符 找出重复签到的同学

找出一个字符串中出现次数最多的一个字符 找出重复签到的同学

时间:2023-11-16 19:12:01浏览次数:35  
标签:count index 找出 字符 签到 int 输出 字符串

7-2 找出一个字符串中出现次数最多的一个字符

找出一个字符串中出现次数最多的一个字符。

输入格式:

给出一个字符串,字符串的长度不大于10^6,不区分大小写, 字符串中可能包含'A'-'Z','a'-'z',' '字符。

输出格式:

分别输出出现最多次数的字符(如果为字母,输出小写字母),出现的次数,用一个空格分隔,如果有字符出现次数相同的输出较小的字符。行末尾无多余空格和换行

输入样例:

abcdefghijklmnopqrstuvwxyzA

输出样例:

a 2

 解题思路:

  1.先读入需要判断的字符串,循环判断字符串是否属于'a'到'z'或‘A’到'Z'之间,根据ASCII码进行存储。如:'a'-'a'=0,count['a'-'a']便用来存储'a'出现的次数

  2.判断完成之后,找出数组count[]中最大的,即出现次数最多的字母,将其和出现的次数一起输出。

#include<stdio.h>
int main(){
    char str[1000000] = {""};
    int i,j;
    scanf("%s",&str);
    int count[26] = {0};
    for(i=0;i<1000000;i++){
        if(str[i]==""){
            break;
        }else{
            char a = str[i];
            if(a>='A'&&a<='Z'){
                count[a-'A']++;
            }
            if(a>='a'&&a<='z'){
                count[a-'a']++;
            }
        }
    }
    int max = 0;
    int index = 0;
    for(i=0;i<26;i++){
        if(count[i]>max){
            max = count[i];
            index = i;
        }
    }
    printf("%c %d",('a'+index),count[index]);
}

7-6 签到 找出重复签到的同学

找出签到数据中重复签到的同学

输入格式:

[1, 2, 2, 3, 4, 5, 4],数字表示收集的签到的学生的学号

输出格式:

2 4
输出重复签到的学生学号,从小到大输出,数字后面有一个空格符

输入样例:

在这里给出一组输入。例如:

[1, 2, 2, 3, 4, 5, 4]

输出样例:

在这里给出相应的输出。例如:

2 4 

解题思路:

  1.通过观察输入的数据,可以发现,在'[',' '符号后会输入我们所需的学生学号,所以我们可以在程序中进行判断,即当这次获得的字符为'['或' '时,对下一次读入的数据进行判断。(程序中的index的状态用来实现以上逻辑)

  2.除了index外,还需要多加一个判断,通过观察输入数据可知,除符号 '[' , ']' , ',' , ' ' 外的输入均为学生学号,即判断本次获得的字符在不是'['和' ',且index=1的情况下,该输入为数字,则可以用来进行记录。

  3.程序中有使用count用来记录学号的个数,在输出时的for循环的结束判断是i<count,但是提交时出现答案错误,后来考虑到学号会大于输入学号的个数,所以将循环改为遍历整个数组,输出学号出现次数大于1的学号,则答案正确。

#include<stdio.h>
int main(){
    int index = 1;
    int record[100000] = {0};
    char get = getchar();
    int count = 0;
    while(get!=']'){
        get = getchar();
        if(get == '['||get == ' '){
            index = 1;
        } else {
            if (index) {
                int i = get - '0';
                record[i]++;
                count++;
                index = 0;
            }
        }
    }
    for(int i=1;i<100000t;i++){
        if(record[i]>1){
            printf("%d ",i);
        }
    }
}

 

标签:count,index,找出,字符,签到,int,输出,字符串
From: https://www.cnblogs.com/lavendery/p/17836963.html

相关文章

  • 344. 反转字符串
    2023-11-16344.反转字符串-力扣(LeetCode)思路:        //栈    //头插链表    //o1 双指针双指针:classSolution{publicvoidreverseString(char[]s){//栈//头插链表//o1双指针inti=0;......
  • [左神面试指南] 字符串[上]篇
    CD95判断两个字符串是否互为变形词/*模拟*/publicclassCD95_1{publicstaticbooleansolution(Strings1,Strings2){if(s1.length()!=s2.length())returnfalse;int[]temp=newint[256];for(charch:s1.toCharArray())......
  • 判断一个字符串中出现次数最多的字符,统计这个次数
    varstr="stiabsstringapbs";varobj={};for(vari=0;i<str.length;i++){varkey=str[i];if(!obj[key]){obj[key]=1;}else{obj[key]++;......
  • setTimeout可以将字符串当成代码执行,类比eval函数。当遇到setTimeout或者SetInterval,
    请问以下JS代码的输出顺序是?letdate=newDate()setTimeout(()=>{console.log('1')},2000)setTimeout('console.log(2)',1000);setTimeout(function(){console.log('3')},1500);while((newDate()-date)<3000){}A报错B......
  • Java字符串、字符与数字之间的相互转换
    一、数字转字符串//将整个数字转化为字符串inti=456;//方法一Stringstr1=Integer.toString(i);System.out.println(str1);//方法二Stringstr2=i+"";System.out.println(str2)二、字符串转数字//整数方法一Stringstr="123";intnum1=Integer.parseInt(str);/......
  • 字符串分割匹配
    InfantFeedingTube-Itisusedforneonatesandpaediatricnutritionalfeeding,FoleyBalloonCatheter(GPCFoleyBalloonCatheter)-Itisaurinarytractcatheterusedforshorttermurinedrainage,SafetyIVCannula(GPCSafetyIVCannula)-SafetyIVCannula......
  • 将字符串转换为uniqueidentifier时失败
    MicrosoftSQLServerManagementStudioExpress不支持表字段uniqueidentifier插入未指定值启用默认值。未指定时会报“将字符串转换为uniqueidentifier时失败”//2008的MSSM不支持下面的带引号,前者可以,代价是默认值是字符串转换失败了这是一个小坑,正常的要将引号去掉,Po......
  • c语言 常量字符串及其初始化
    @TOC前言一、常量字符串:常量字符串:需用双引号包着。例如:"hello","你好".常量字符串的本质就是字符数组,该字符串就是数组的名字。访问常量字符串的个元素:"hellowyy"[0]"hellowyy"[1]"hellowyy"[2]......访问各元素可以输出,但是不能赋值修改,因为这是常量字符。常量......
  • 统计字符串中每个单词出现的次数
    defcount_words(string):words=string.split()word_count={}forwordinwords:ifwordinword_count:word_count[word]+=1else:word_count[word]=1returnword_countstring="Iloveprogramming.Programmingisfun!"......
  • 统计字符串中每个单词出现的次数
    defcount_words(string):words=string.split()word_count={}forwordinwords:ifwordinword_count:word_count[word]+=1else:word_count[word]=1returnword_countstring="Iloveprogramming.Programmingisfun!"......