杭电oj-2017 字符串统计 C++

本文介绍了一种算法,用于统计给定字符串中数字字符的出现次数。通过解析输入的字符串,算法能够准确地计算并输出所有数字字符的总数。

Problem Description

对于给定的一个字符串,统计其中数字字符出现的次数。

Input

输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。

Output

对于每个测试实例,输出该串中数值的个数,每个输出占一行。

Sample Input

2
asdfasdf123123asdfasdf
asdf111111111asdfasdfasdf

Sample Output

6
9

在这里插入代码片
```#include <iostream>
#include <string>
using namespace std;
const int  max_size=101;
int main()
{
    int n;
    string  a[max_size];  //放每行的字符串
    int  b[max_size]; //放每行的数字个数
    while(cin>>n)
    {
       for(int i=0;i<n;i++)    //输入序列,并求最小值
          {cin>>a[i];
            b[i]=0;  //初始化

          }
       for(int i=0;i<n;i++)
         for(unsigned int j=0;j<a[i].length();j++)
           if( a[i][j]>=48&&a[i][j]<=57)
               b[i]++;

       for(int i=0;i<n;i++)
         cout<<b[i]<<endl;

    }
    return 0;
}


### HDU OJ 2085 C++ 解决方案 对于编号为2085的问题,在杭电在线评测系统(HDU OJ)上,该题目涉及的是关于统计给定字符串中特定字符的数量并判断这些数量是否能构成回文串的任务[^1]。 #### 题目解析 此题的核心在于理解如何通过计算各个字母出现次数来决定能否形成一个回文结构。具体来说,如果最多只有一个字母出现了奇数次,则可以构建出至少一种方法使得输入成为中心对称图形;反之则不行。 #### 实现思路 为了实现上述逻辑,程序首先读取输入数据,并利用数组或其他容器记录下每种不同字符各自的数目。之后遍历这个计数值列表,检查有多少项是奇数。最后依据之前提到的原则得出结论。 以下是基于以上分析编写的C++代码: ```cpp #include <iostream> #include <string> using namespace std; int main() { int n; cin >> n; while (n--) { string s; cin >> s; bool canFormPalindrome = true; int charCounts[26] = {0}; // Assuming only lowercase English letters for(char c : s){ ++charCounts[c-'a']; } int oddCount = 0; for(int count : charCounts){ if(count % 2 != 0){ ++oddCount; } } if(oddCount > 1){ canFormPalindrome = false; } cout << (canFormPalindrome ? "Yes\n" : "No\n"); } return 0; } ``` 这段代码实现了从标准输入读入测试案例数量以及对应的待测字符串序列,接着按照描述的方法处理每一个实例,并输出最终的结果:“Yes”表示能够组成回文,“No”意味着不可以。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值