Xiaomi的遗憾 2023-11-26 12:04 采纳率: 100%
浏览 6
已结题

string字符串:字符串价值(c++)问题

题目描述
一个字符串的价值定义为:该字符串所有字母价值之和,一个字母如果在字符串中是第一次出现,则该字母的价值为2,否则价值为1,并且字母不区分大小写。
例如:字符串 S = "ABaBC"的价值为8,从左到右:字母A在字符串S中第一次出现,所以其的价值是2;字母B在字符串S中第一次出现,所以其的价值是2;字母a在字符串S中之前已经出现过(不区分大小写),所以其的价值是1;字母B在字符串S中之前已经出现过,所以其的价值是1;字母C在字符串S中第一次出现,所以其的价值是2。因此字符串S的总价值为2+2+1+1+2=8。
给定一个只包含大小写字母的字符串S,请你计算字符串S的价值。

输入
第一行一个整数T,表示共有T组测试数据。
每组数据一行,一个字符串S。

输出
每组数据输出一行,一个整数,表示字符串S的价值。

样例输入
2
shenzejiaoyu
bianchengxuexi

样例输出
23
24
提示
数据范围:
对100% 的数据保证:1≤T≤100,1≤∣S∣<100,其中∣S∣表示字符串S的长度。
有谁能做出来?请用C++做!不得用python,c语言做!

  • 写回答

2条回答 默认 最新

  • micthis 2023-11-26 13:41
    关注
    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
        int n,ct;
        string s;
        cin>>n;
        for(;n>0;n--)
        {
            ct=0;
            int a[26]={0};
            getline(cin,s);
            for(char c:s)
            {
                c=tolower(c);
                if('a'<=c&&c<='z')
                {
                    ct+=!a[c-'a']?2:1;
                    a[c-'a']++;
                }
            }
            cout<<ct<<endl;
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月4日
  • 已采纳回答 11月26日
  • 修改了问题 11月26日
  • 创建了问题 11月26日

悬赏问题

  • ¥15 如何让子窗口鼠标滚动独立,不要传递消息给主窗口
  • ¥15 如何能达到用ping0.cc检测成这样?如图
  • ¥15 关于#DMA固件#的问题,请各位专家解答!
  • ¥15 matlab生成的x1图不趋于稳定,之后的图像是稳定的水平线
  • ¥15 请问华为OD岗位的内部职业发展通道都有哪些,以及各个级别晋升的要求
  • ¥20 微信小程序 canvas 问题
  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验