立志用更少的代码做更高效的表达


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分)(进制转换)相关推荐

  1. C++学习之路 | PTA乙级—— 1057 数零壹 (20 分)(精简)

    1057 数零壹 (20 分) 给定一串长度不超过 10 ​5 ​​ 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N ...

  2. 【PAT乙级】1057 数零壹 (20 分)

    题目地址 #include<cstdio> #include<iostream> #include<string> #include<cstring> ...

  3. 1057. 数零壹(20)-PAT乙级真题

    1057. 数零壹(20) 给定一串长度不超过10^5的字符串,本题要求你将其中所有英文字母的序号(字母a-z对应序号1-26,不分大小写)相加,得到整数N,然后再分析一下N的二进制表示中有多少0.多 ...

  4. [解题报告](第20讲) 进制转换(二) - 进阶

    零.写在前面 这是打卡的第二十天,今天题目还是有点难度的,不过就是题量下来了,可以沉淀一下之前的题目了,主要知识点在<算法零基础100讲>(第20讲) 进制转换(二) - 进阶https: ...

  5. 《算法零基础100讲》(第20讲) 进制转换(二) - 进阶[C语言题解]

    文章目录 一. 知识普及 1.1 atoi 1.2 log 1.3 pow 1.4 floor 二. 进阶题解 168. Excel表列名称 171. Excel 表列序号 483. 最小好进制 一. ...

  6. 【数电】(一) 进制转换编码 原码,反码,补码

    文章目录 前提知识 计算机发展史 集成电路(Integrated Circuit) 数字集成电路 0 1思维 1Bit 机器码 加法器 二进制与十进制之间的转换 BCD编码 原码,反码,补码 原码 反 ...

  7. 数电(一):进制转换

    1.十进制转N进制 整数部分(除N取余法,逆序排列)+小数部分(乘N取整法,顺序排列) 2.R进制转10进制 3.基数R为2k的各进制之间的相互转换 注意:转换时要以中间的小数点为中心向两边对齐 二进 ...

  8. 1057. 数零壹(20)

    给定一串长度不超过105的字符串,本题要求你将其中所有英文字母的序号(字母a-z对应序号1-26,不分大小写)相加,得到整数N,然后再分析一下N的二进制表示中有多少0.多少1.例如给定字符串" ...

  9. 《算法零基础100讲》(第20讲) 进制转换(二) - 进阶

    文章目录 零.写在前面 一.概念定义 二.题目描述 三.算法详解 四.源码剖析 五.推荐专栏 六.习题练习 零.写在前面   这是<算法零基础100讲> 专栏打卡学习的第 20 天了.如果 ...

最新文章

  1. 还在用JDK6的同学,来看看JDK13新特性详解吧
  2. node exprass安装运行实例
  3. 虚荣的程序员--恶心,真的想吐
  4. 《计算复杂性:现代方法》——0.2 判定问题/语言
  5. 进程之父子进程的关系
  6. python 执行文件内容_python执行文件
  7. hdu-2421 Deciphering Password 数学姿势
  8. 假设以带头结点的循环链表表示队列_数据结构·链表(C实现)
  9. 如何使用纯CSS3来生成家谱(family tree)
  10. FD.io VPP:用户文档:VPP RPM包的构建与离线安装
  11. 易中天讲的很有哲理的十句话【转】
  12. Linux 下源代码阅读工具 —— vim + TagList + CTags
  13. 信息系统开发平台OpenExpressApp - 从compositewpf到MEF
  14. 浅谈SSD应用和发展趋势
  15. asp.net身份验证
  16. Go语言之 下载安装及第一个代码
  17. 详细Gitee(码云)使用方法
  18. 串口助手是怎么做出来的 :第一节,串口助手界面的实现及串口通信原理的介绍
  19. 深度学习基础6(微分,偏导,梯度,链式法则)
  20. 带你了解ICCV、ECCV、CVPR三大国际会议

热门文章

  1. 操作系统 : 按优先数调度算法实现处理器调度(C++)
  2. Python合并两个有序列表
  3. docker学习笔记(四)docker数据持久化volume
  4. 多线程小抄集(新编四)
  5. C++中各种智能指针的实现及弊端(一)
  6. LiveVideoStackCon 2021上海站 售票通道关闭倒计时24h
  7. 利用JPEG制作更快,更准确的神经网络
  8. 何亚明:Facebook的工具文化和多媒体QoE
  9. Go基础编程:命名、变量、常量
  10. 腾讯荣获OSCAR尖峰开源企业奖 参与国内首个开源治理白皮书编写