当前位置: 首页 > news >正文

天梯-这是字符串题

隐式转换

  1. 隐式转换是指编译器在没有显式提示的情况下,自动将一种数据类型转换为另一种数据类型。这种转换是语言规范允许的,并且通常是为了让代码更简洁、更自然。隐式转换的类型字符类型( char )可以隐式转换为其对应的ASCII码值( int 类型)。这是因为字符本质上是存储在内存中的整数值,而ASCII码表定义了字符与整数值之间的映射关系。
  2. 数组的下标必须是整数类型,不能直接使用字母作为数组的下标。在C++中,字符类型( char )可以隐式转换为其对应的ASCII码值( int 类型),即一个字符,在数组下标或数组访问中会被自动转换为其ASCII码值。因此可以通过这种方式间接用字符(实际是字母的ASCII码值)作为数组下标。

map用法

题解

本题有两种解法,h 可以使用普通数组来实现,也可以使用 map

普通数组

注意,h数组一定要先初始化,h  数组如果没有被初始化,这意味着它可能包含任意值。当你对  h[s[i]]  进行自增操作时,可能会得到错误的结果。

#include<bits/stdc++.h>
using namespace std;
int main(){string s;int h[123]={0};cin>>s;int w[123],ans=0;for(int i='a';i<='z';i++){cin>>w[i];}for(int i=0;i<s.size();i++){h[s[i]]++;ans+=w[s[i]];}for(int i='a';i<='z';i++){if(i=='z'){cout<<h[i];}else cout<<h[i]<<" ";}cout<<endl;cout<<ans<<endl;return 0;
}

map

#include<bits/stdc++.h>
using namespace std;
int main(){string s;map<char,int>h;cin>>s;int w[123],ans=0;for(int i='a';i<='z';i++){cin>>w[i];}for(int i=0;i<s.size();i++){h[s[i]]++;ans+=w[s[i]];}for(int i='a';i<='z';i++){if(i=='z'){cout<<h[i];}else cout<<h[i]<<" ";}cout<<endl;cout<<ans<<endl;return 0;
}

相关文章:

  • Unity 接入阿里的全模态大模型Qwen2.5-Omni
  • VS中回显109:对‘pthread_create’未定义的引用
  • 服务器如何修复SSL证书错误?
  • 【Java面试笔记:基础】9.对比Hashtable、HashMap、TreeMap有什么不同?
  • 模型上下文协议MCP
  • pycharm调试typescript
  • Oracle 数据库中的 JSON:性能注意事项
  • 【CSS】层叠,优先级与继承(四):层叠,优先级与继承的关系
  • Elasticsearch 集群节点下线方案
  • SwiftUI 3.Button介绍和使用
  • Kimi做内容社区,剑指小红书?
  • AI赋能社区生态:虎跃办公的网址导航革新实践
  • 事业单位体检心电图不合格类型有哪些
  • Java高频面试之并发编程-06
  • 腾讯秋招面试题:bug生命周期中有哪些状态?
  • (即插即用模块-特征处理部分) 四十一、(2024) MSAA 多尺度注意力聚合模块
  • 为什么Spring中@Bean注解默认创建单例Bean
  • 计算机网络笔记(六)——1.6计算机网络的性能
  • 长连接、短连接与WebSocket的基本知识
  • crictl 遇到报错 /run/containerd/containerd.sock: connect: permission denied
  • 广东省发展改革委原副主任、省能源局原局长吴道闻被开除公职
  • 经济日报刊文:如何破除“内卷式”竞争
  • 李家超率团访问浙江
  • 瑞穗银行(中国)有限公司行长:重庆赛力斯超级工厂的智能化程度令人震惊
  • 从 “负分” 到世界杯亚军,蒯曼专打“逆风局”
  • 讲座|在数字化时代,“记住”到底意味着什么