5 条题解

  • 4
    @ 2023-7-15 15:36:24

    解析

    用cnt[i]表示26个英文字母出现的次数。

    因为输出的时候,数字之间需要用逗号隔开,所以可以先输出cnt[0],再输出cnt[1]~cnt[25]。

    题解

    #include <string>
    #include <iostream>
    using namespace std;
    int cnt[26];
    int main()
    {
        string s;
        cin >> s;
        for (int i = 0; i < s.length(); i++)
            if (s[i] >= 'a' && s[i] <= 'z')
                cnt[s[i] - 'a']++;
        cout << cnt[0];
        for (int i = 1; i < 26; i++)
            cout << "," << cnt[i];
        return 0;
    }
    
    • 1
      @ 2023-11-24 20:09:41
      #include <iostream>
      using namespace std;
      int main()
      {
          int sum = 0;
          string a;
          cin >> a; 
          for(int j = 'a';j <= 'z';j++)
          {
              for(int i = 0;i < int(a.length());i++)
              {
                  if(a[i] == j)
                  {
                     sum++;
                  }
              }
              cout << sum;
              if(j != 'z')
              {
                  cout << ",";
              }
              sum = 0;
          }    
          return 0;
      }
      
      • -2
        @ 2023-7-15 16:59:57

        思路:

        我们可以用一个一维数组(cnt)结合下标去存储a-z分别出现了几次

        也就是说,a对应0,b对应1,……,z对应25

        把a到z转化为1到25,可以通过把每个字母-'a'实现

        知道这些以后来写代码,先用一个string类型的变量(s)存储字符串,获取长度以后遍历s,判断s是不是小写字母,如果是,cnt中与这个字母对应的下标所对应的数+1(cnt[s[i] - 'a']++)

        统计完以后输出,输出时要注意最后不能有',',有两种处理方法

        1、先输出cnt[0],然后遍历cnt[2到25],输出cnt[i]和','

        2、判断这是不是最后一个,如果是,输出cnt[i],否则输出cnt[i]和','

        #include <iostream>
        #include <string>
        using namespace std;
        
        int main()
        {
            string s;
            cin >> s;
            int l = s.length(),cnt[30] = {0};
            for(int i = 0;i < l;i++)
            {
                if(!((s[i] >= '1' && s[i] <= '9') || (s[i] >= 'A' && s[i] <= 'Z')))
                    cnt[s[i] - 'a']++;
            }
            for(int i = 0;i < 26;i++)
            {
                if(i == 25)
                    cout << cnt[i];
                else
                    cout << cnt[i] << ',';
            }
            return 0;
        }
        
        • -3
          @ 2023-7-16 10:41:44
          #include <iostream>
          #include <cstring>
          using namespace std;
          int t[30];
          int main()
          {
              char s[1005];
              cin>>s;
              for (int i=(int)'a';i<=(int)'z';i++)
              {
                  for (int a=0;a<=(int)strlen(s)-1;a++)
                  {
                      if (s[a]==(char)i)
                          t[i-96]+=1;
                  }
              }
              for (int i=1;i<=26;i++)
              {
                  cout<<t[i];
                  if (i!=26)
                      cout<<",";
              }
              return 0;
          }
          
          • -3
            @ 2023-7-16 8:00:23
            #include<bits/stdc++.h>
            using namespace std;
            int flag[26];
            int main()
            {
                char a[1005];
                cin >> a + 1;
                int n=strlen(a + 1);
                for (int i=1;i<=n;i++)
                {
                    if (a[i]>='a' && a[i]<='z')
                    {
                        flag[a[i]-'a'+1]++;
                    }
                }
                for (int i=1;i<=26;i++)
                {
                    if (i==26)//输出z字母出现次数时不要带逗号
                    {
                        cout<<flag[i];
                    }
                    else
                    {
                        cout<<flag[i]<<",";
                    }
                }
            
                return 0;
            }
            
            • 1

            信息

            ID
            296
            时间
            1000ms
            内存
            256MiB
            难度
            7
            标签
            递交数
            2321
            已通过
            601
            上传者