【解析】1057 数零壹 (20分)(进制转换)
立志用更少的代码做更高效的表达
Pat乙级最优化代码+题解+分析汇总——>传送门
给定一串长度不超过 10^5的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有多少 0、多少 1。例如给定字符串 PAT (Basic),其字母序号之和为:16+1+20+2+1+19+9+3=71,而 71 的二进制是 1000111,即有 3 个 0、4 个 1。
输入格式:
输入在一行中给出长度不超过 10^5 、以回车结束的字符串。
输出格式:
在一行中先后输出 0 的个数和 1 的个数,其间以空格分隔。注意:若字符串中不存在字母,则视为 N 不存在,也就没有 0 和 1。
输入样例:
PAT (Basic)
输出样例:
3 4
解析
1、用getline输入字符串, 因为字符串中可能含有空格等特殊符号。(以后凡是PAT的题,尽量都用getline处理string字符串)
2、利用#include<cctype>
头文件中的isalpha()
判断是否是字母,利用toupper()
全部改为大写, 减64(A为65)累加即可。
3、进制转换:while配合除法、取余
代码
#include<bits/stdc++.h>
using namespace std;void Between(int x) {int x1 = 0, x0 = 0;while(x) {x%2==0?x0++:x1++;x/=2;}cout << x0 << ' ' << x1;
}
int main() {string s; getline(cin, s);int len = s.length(), num = 0;for(int i = 0; i < len; i++) if(isalpha(s[i])) {s[i] = toupper(s[i]);num += (int)(s[i]-64);}Between(num);return 0;
}
耗时
每日一句
每个不曾起舞的日子,都是对生命的辜负。
【解析】1057 数零壹 (20分)(进制转换)相关推荐
- C++学习之路 | PTA乙级—— 1057 数零壹 (20 分)(精简)
1057 数零壹 (20 分) 给定一串长度不超过 10 5 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N ...
- 【PAT乙级】1057 数零壹 (20 分)
题目地址 #include<cstdio> #include<iostream> #include<string> #include<cstring> ...
- 1057. 数零壹(20)-PAT乙级真题
1057. 数零壹(20) 给定一串长度不超过10^5的字符串,本题要求你将其中所有英文字母的序号(字母a-z对应序号1-26,不分大小写)相加,得到整数N,然后再分析一下N的二进制表示中有多少0.多 ...
- [解题报告](第20讲) 进制转换(二) - 进阶
零.写在前面 这是打卡的第二十天,今天题目还是有点难度的,不过就是题量下来了,可以沉淀一下之前的题目了,主要知识点在<算法零基础100讲>(第20讲) 进制转换(二) - 进阶https: ...
- 《算法零基础100讲》(第20讲) 进制转换(二) - 进阶[C语言题解]
文章目录 一. 知识普及 1.1 atoi 1.2 log 1.3 pow 1.4 floor 二. 进阶题解 168. Excel表列名称 171. Excel 表列序号 483. 最小好进制 一. ...
- 【数电】(一) 进制转换编码 原码,反码,补码
文章目录 前提知识 计算机发展史 集成电路(Integrated Circuit) 数字集成电路 0 1思维 1Bit 机器码 加法器 二进制与十进制之间的转换 BCD编码 原码,反码,补码 原码 反 ...
- 数电(一):进制转换
1.十进制转N进制 整数部分(除N取余法,逆序排列)+小数部分(乘N取整法,顺序排列) 2.R进制转10进制 3.基数R为2k的各进制之间的相互转换 注意:转换时要以中间的小数点为中心向两边对齐 二进 ...
- 1057. 数零壹(20)
给定一串长度不超过105的字符串,本题要求你将其中所有英文字母的序号(字母a-z对应序号1-26,不分大小写)相加,得到整数N,然后再分析一下N的二进制表示中有多少0.多少1.例如给定字符串" ...
- 《算法零基础100讲》(第20讲) 进制转换(二) - 进阶
文章目录 零.写在前面 一.概念定义 二.题目描述 三.算法详解 四.源码剖析 五.推荐专栏 六.习题练习 零.写在前面 这是<算法零基础100讲> 专栏打卡学习的第 20 天了.如果 ...
最新文章
- 还在用JDK6的同学,来看看JDK13新特性详解吧
- node exprass安装运行实例
- 虚荣的程序员--恶心,真的想吐
- 《计算复杂性:现代方法》——0.2 判定问题/语言
- 进程之父子进程的关系
- python 执行文件内容_python执行文件
- hdu-2421 Deciphering Password 数学姿势
- 假设以带头结点的循环链表表示队列_数据结构·链表(C实现)
- 如何使用纯CSS3来生成家谱(family tree)
- FD.io VPP:用户文档:VPP RPM包的构建与离线安装
- 易中天讲的很有哲理的十句话【转】
- Linux 下源代码阅读工具 —— vim + TagList + CTags
- 信息系统开发平台OpenExpressApp - 从compositewpf到MEF
- 浅谈SSD应用和发展趋势
- asp.net身份验证
- Go语言之 下载安装及第一个代码
- 详细Gitee(码云)使用方法
- 串口助手是怎么做出来的 :第一节,串口助手界面的实现及串口通信原理的介绍
- 深度学习基础6(微分,偏导,梯度,链式法则)
- 带你了解ICCV、ECCV、CVPR三大国际会议