C/C++每日一练(20230224)

目录
1. 字符串排序
2. Excel表列名称
3. 颠倒二进制位
附录:
位移运算符
左移运算符<<
1.无符号
2.有符号
右移运算符>>
1.无符号
2.有符号
程序测试
1. 字符串排序
编写程序,输入若干个字符串。
要求:
(1)按字符串长度的大小升序输出各个字符串。
(2)按字符串中字符的ASCII码值大小升序输出各个字符串。
代码:
#include <string>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;bool compare(string a,string b) {if (a.length() != b.length()) {return a.length() < b.length();}return a < b;
}int main()
{vector<string>list;string inputString;while (cin>>inputString) {if (inputString == "0") {break;}list.push_back(inputString);}sort(list.begin(),list.end(),compare);for (int i=0; i<list.size(); i++) {cout<<list[i]<<endl;}return 0;
}
输入输出: (略)
2. Excel表列名称
给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。
例如:
A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...
示例 1:
输入:columnNumber = 1 输出:"A"
示例 2:
输入:columnNumber = 28 输出:"AB"
示例 3:
输入:columnNumber = 701 输出:"ZY"
示例 4:
输入:columnNumber = 2147483647 输出:"FXSHRXW"
提示:
1 <= columnNumber <= 231 - 1
代码:
#include <bits/stdc++.h>
using namespace std;class Solution
{
public:string convertToTitle(int n){string res;while (n){int temp = n % 26;n /= 26;if (temp)res.push_back('A' + temp - 1);else{res.push_back('Z');n--;}}reverse(res.begin(), res.end());return res;}
};int main()
{Solution s;cout << s.convertToTitle(1) << endl;cout << s.convertToTitle(28) << endl;cout << s.convertToTitle(701) << endl;cout << s.convertToTitle(2147483647) << endl;return 0;
}
输出:
A
AB
ZY
FXSHRXW
3. 颠倒二进制位
颠倒给定的 32 位无符号整数的二进制位。
提示:(仅对Java而言,C++用不到批提示)
请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用二进制补码(https://baike.baidu.com/item/二进制补码/5295284)记法来表示有符号整数。因此,在 示例 2 中,输入表示有符号整数-3,输出表示有符号整数-1073741825。
示例 1:
输入:n = 00000010100101000001111010011100 输出:964176192 (00111001011110000010100101000000) 解释:输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。
示例 2:
输入:n = 11111111111111111111111111111101 输出:3221225471 (10111111111111111111111111111111) 解释:输入的二进制串 11111111111111111111111111111101 表示无符号整数 4294967293,因此返回 3221225471 其二进制表示形式为 10111111111111111111111111111111 。
提示:
- 输入是一个长度为
32的二进制字符串
进阶: 如果多次调用这个函数,你将如何优化你的算法?
代码:
#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:uint32_t reverseBits(uint32_t n){uint32_t res = 0;for (int i = 0; i < 32; i++){res <<= 1;res |= n & 1;n >>= 1;}return res;}
};int main()
{Solution s;cout << s.reverseBits(43261596) << endl;cout << s.reverseBits(4294967293) << endl;return 0;
}
输出:
964176192
3221225471
附录:
位移运算符
是位操作运算符的一种。移位运算符可以在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。
左移运算符<<
1.无符号
语法格式:需要移位的数字<<移位的次数n
运算规则:按二进制形式把所有数字向左移动相应的位数,高位移出(舍弃),低位的空位补0。相当于乘以2的n次方
例如:4<<2 ,就是将数字4左移2位
过程:4的二进制形式:00000000 00000000 00000000 00000100;然后把高位2个0移出,其余所有位向左移动2位,低位补0,得到:00000000 00000000 00000000 00010000;十进制数为16,16=4*22。
2.有符号
如果你左移有符号的数字,以至于符号位受影响,则结果是不确定的。
右移运算符>>
1.无符号
语法格式:需要移位的数字>>移位的次数n
运算规则:按二进制形式把所有数字向右移动相应的位数,低位移出(舍弃),高位的空位补0。相当于除以2的n次方
例如:4>>2 ,就是将数字4左移2位
过程:4的二进制形式:00000000 00000000 00000000 00000100;然后把低位2个0移出,其余所有位向右移动2位,高位补0,得到:00000000 00000000 00000000 00000001;十进制数为1,1=4÷22。
2.有符号
语法格式:需要移位的数字>>移位的次数n
运算规则:按二进制形式把所有数字向右移动相应的位数,低位移出(舍弃),正数,高位的空位补0。负数,高位的空位补1.
程序测试
#include <iostream>
#include <bitset>
using namespace std;int main() {unsigned short short1 = 4; bitset<16> bitset1{short1}; // the bitset representation of 4cout << bitset1 << endl; // 0000000000000100unsigned short short2 = short1 << 1; // 4 left-shifted by 1 = 8bitset<16> bitset2{short2};cout << bitset2 << endl; // 0000000000001000unsigned short short3 = short1 << 2; // 4 left-shifted by 2 = 16bitset<16> bitset3{short3};cout << bitset3 << endl; // 0000000000010000return 0;
}
#include <iostream>
#include <bitset>
using namespace std;int main() {short short1 = 16384; bitset<16> bitset1{short1};cout << bitset1 << endl; // 0100000000000000 short short2 = short1 << 1;bitset<16> bitset2{short2}; // 16384 left-shifted by 1 = -32768cout << bitset2 << endl; // 100000000000000short short3 = short1 << 14;bitset<16> bitset3{short3}; // 4 left-shifted by 14 = 0cout << bitset3 << endl; // 000000000000000
}
#include <iostream>
#include <bitset>
using namespace std;int main() {unsigned short short11 = 1024;bitset<16> bitset11{short11};cout << bitset11 << endl; // 0000010000000000unsigned short short12 = short11 >> 1; // 512bitset<16> bitset12{short12};cout << bitset12 << endl; // 0000001000000000unsigned short short13 = short11 >> 10; // 1bitset<16> bitset13{short13};cout << bitset13 << endl; // 0000000000000001unsigned short short14 = short11 >> 11; // 0bitset<16> bitset14{short14};cout << bitset14 << endl; // 0000000000000000}
}
#include <iostream>
#include <bitset>
using namespace std;int main() {short short1 = 1024;bitset<16> bitset1{short1};cout << bitset1 << endl; // 0000010000000000short short2 = short1 >> 1; // 512bitset<16> bitset2{short2};cout << bitset2 << endl; // 0000001000000000short short3 = short1 >> 10; // 1bitset<16> bitset3{short3}; cout << bitset3 << endl; // 0000000000000001short neg1 = -16;bitset<16> bn1{neg1};cout << bn1 << endl; // 1111111111110000short neg2 = neg1 >> 1; // -8bitset<16> bn2{neg2};cout << bn2 << endl; // 1111111111111000short neg3 = neg1 >> 2; // -4bitset<16> bn3{neg3};cout << bn3 << endl; // 1111111111111100short neg4 = neg1 >> 4; // -1bitset<16> bn4{neg4}; cout << bn4 << endl; // 1111111111111111short neg5 = neg1 >> 8; // -1???bitset<16> bn5{neg5}; cout << bn5 << endl; // 1111111111111111return 0;}相关文章:
C/C++每日一练(20230224)
目录 1. 字符串排序 2. Excel表列名称 3. 颠倒二进制位 附录: 位移运算符 左移运算符<< 1.无符号 2.有符号 右移运算符>> 1.无符号 2.有符号 程序测试 1. 字符串排序 编写程序,输入若干个字符串。 要求: (1&#x…...
基于YOLO的酸枣病虫害检测识别实践
在我前面的博文中对于农作物病虫害的检测识别已经做过了,不过那个主要是针对水稻的,文章如下:《基于yolov5的轻量级水稻虫害目标检测项目实践》感兴趣的话可以自行移步阅读。这里主要是针对酸枣常见的几种病虫害检测检测识别,首先…...
WAF:ModSecurity on Nginx(15)
预备知识 Nginx概述 Nginx ("engine x") 是一个高性能的HTTP和 反向代理 服务器,也是一个 IMAP/POP3/SMTP服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代…...
Qt 第3课、Qt 中的字符串类
1、C 标准库 STL STL 是意义上需要与C 一同发布的标准库STL 是一套以模板技术完成的 C类库STL 中包含了常用的算法和数据结构STL 包含了字符串类 2、Qt 和 STL STL 的具体实现依赖于编译器生产厂商STL 的 “标准” 只是其接口是标准的 — 相同的全局函数 — 相同的算法类和数…...
Vulnhub靶场----6、DC-6
文章目录一、环境搭建二、渗透流程三、思路总结一、环境搭建 DC-6下载地址:https://download.vulnhub.com/dc/DC-6.zip kali:192.168.144.148 DC-6:192.168.144.154 靶机描述:选择带k01的密码后面会用到 访问192.168.144.154&…...
华为OD机试真题Python实现【去重求和】真题+解题思路+代码(20222023)
去重求和 给定一个数组,编写一个函数, 计算他的最大N个数和最小N个数的和, 需要对数组进行去重。 🔥🔥🔥🔥🔥👉👉👉👉👉👉 华为OD机试(Python)真题目录汇总 输入 第一行输入M,M表示数组大小 第二行输入M个数,表示数组内容 第三行输入N表示需要…...
lammps教程:Ovito选择特定晶粒的方法
大家好,我是小马老师。 本文介绍如何使用ovito提取特定的晶粒。 在多晶的lammps模拟中,可能会对某一个特定晶粒的变形情况进行分析,此时,需要找到这个晶粒,并进行单独分析。 ovito有专用的晶粒识别命令,…...
DevEco Studio 3.1 Beta1版本发布——新增六大关键特性,开发更高效
智能代码编辑、端云一体化开发、低代码开发个性化…… 六大新增关键特性,开发更高效,体验更觉妙! 立即点击链接下载,做DevEco Studio 3.1 Beta1版本尝鲜者! 下载链接:HUAWEI DevEco Studio和SDK下载和升级 …...
【蓝桥杯每日一题】二分算法
🍎 博客主页:🌙披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:🌙 蓝桥杯 🌙我与杀戮之中绽放,亦如黎明的花…...
Spring Batch 高级篇-并行步骤
目录 引言 概念 案例 转视频版 引言 接着上篇:Spring Batch 高级篇-多线程步骤,了解Spring Batch多线程步骤后,接下来一起学习一下Spring Batch 高级功能-并行步骤 概念 并行步骤,指的是某2个或者多个步骤同时执行。比如下…...
对spring的@Cacheable缓存理解
1 什么是缓存第一个问题,首先要搞明白什么是缓存,缓存的意义是什么。对于普通业务,如果要查询一个数据,一般直接select数据库进行查找。但是在高流量的情况下,直接查找数据库就会成为性能的瓶颈。因为数据库查找的流程…...
力扣-市场分析
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:1158. 市场分析二、解题1.错误示范①提交SQL运行结果2.正确示范①提交SQL运行结果3.错误示范②提交SQL运行结果4.正确示范②提交SQL运行结果5.其他总结前…...
【2357. 使数组中所有元素都等于零】
来源:力扣(LeetCode) 描述: 给你一个非负整数数组 nums 。在一步操作中,你必须: 选出一个正整数 x ,x 需要小于或等于 nums 中 最小 的 非零 元素。nums 中的每个正整数都减去 x。 返回使 n…...
什么品牌的游戏蓝牙耳机比较好?玩游戏延迟低的蓝牙耳机推荐
游戏耳机的出现其实最主要的作用就是让玩家能够更专注的沉浸在游戏世界内,在声音层面去享受游戏的沉浸感,游戏最重要的就是操作灵敏,需要快速通过声音来判断敌人走向,所以小编特意整理了一期玩游戏延迟低的蓝牙耳机。 一、南卡小…...
day 33 状态压缩dp
二维状态压缩dp对于解决哈密顿回路问题的状态压缩dp只能计算固定起点到其他点的总方案数或最小路径等回路计数小蓝现在在第一栋教学楼,他想要访问每栋教学楼正好一次,最终回到第一栋教学楼(即走一条哈密尔顿回路)可看做࿱…...
扬帆优配|超3600股飘绿,人民币贬值近300点!外资净卖近38亿
今天早盘,A股整体震动调整,白马蓝筹股体现较弱,上证50、沪深300指数均跌超1%。 盘面上,国防军工、造纸、数字钱银、IT设备等板块逆势活跃,酿酒、酒店餐饮、钙钛矿电池、有色等板块跌幅居前。两市半日成交4577亿&#x…...
【编程基础之Python】6、Python基础知识
【编程基础之Python】6、Python基础知识Python基础知识Python的基本要素模块语句表达式注释Python的代码格式Python基础知识 Python 是一种高级的、动态的、解释型的编程语言,具有简单易学、开发效率高、可读性强等特点,广泛应用于数据科学、Web 开发、…...
selenium基本操作
爬虫与反爬虫之间的斗争爬虫:对某个网站数据或图片感兴趣,开始抓取网站信息;网站:请求次数频繁,并且访问ip固定,user_agent也是python,开始限制访问;爬虫:通过设置user_a…...
思科设备命令讲解(超基础二)
♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放࿰…...
HTML基础(3)
HTML基础单选框、复选框、下拉框文本框< script >标签属性< script >基本使用单选框、复选框、下拉框 文本框 < script >标签属性 type属性定义script元素包含或src引用的脚本语言。属性值是MIME类型,包括text/javascript,text/ecmascript, appl…...
golang.org/x/net WebSocket开发完全手册:实现实时双向通信
golang.org/x/net WebSocket开发完全手册:实现实时双向通信 【免费下载链接】net [mirror] Go supplementary network libraries 项目地址: https://gitcode.com/gh_mirrors/ne/net 在现代Web应用开发中,实时双向通信已成为提升用户体验的关键技术…...
思维重构:三月七小助手如何重新定义星穹铁道游戏体验
思维重构:三月七小助手如何重新定义星穹铁道游戏体验 【免费下载链接】March7thAssistant 崩坏:星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 在《崩坏:星穹铁道》的世界里࿰…...
PyTorch版本升级踩坑实录:从1.10.0到1.10.1为何导致CUDA不兼容?
PyTorch小版本升级的隐秘陷阱:CUDA兼容性深度解析与实战解决方案 当你满怀期待地执行pip install --upgrade torch命令,将PyTorch从1.10.0升级到1.10.1时,可能不会想到这个看似无害的小版本更新会让你的GPU突然"罢工"。这不是个例…...
SwartNinjaPIR:嵌入式高可靠PIR运动检测驱动库
1. SwartNinjaPIR 库概述:面向嵌入式系统的高可靠性 PIR 运动检测驱动设计SwartNinjaPIR 是一个专为 Arduino 及兼容平台(如 STM32、ESP32 等基于 Arduino Core 的 MCU)设计的轻量级、生产就绪型被动红外(Passive Infrared, PIR&a…...
突破音频限制:OpenCore-Legacy-Patcher焕新老Mac音质体验
突破音频限制:OpenCore-Legacy-Patcher焕新老Mac音质体验 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 当经典Mac设备升级到最新macOS系统后&am…...
解锁B站评论区成分检测器核心价值:从入门到精通的实战指南
解锁B站评论区成分检测器核心价值:从入门到精通的实战指南 【免费下载链接】bilibili-comment-checker B站评论区自动标注成分,支持动态和关注识别以及手动输入 UID 识别 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-comment-checker …...
实时操作系统(RTOS)核心特性与工业实践解析
1. 实时操作系统核心特性解析实时操作系统(RTOS)的核心设计理念在于"确定性响应",这与我们日常使用的通用操作系统有着本质区别。我曾参与过工业控制系统的开发,深刻体会到RTOS在关键任务场景下的不可替代性。以数控机床…...
2026短视频获客决胜点:AI矩阵系统哪家好?深度评测四大“增长黑科技”
摘要:进入2026年,短视频矩阵运营已从“人力的博弈”全面进化为“算法、AI产力与底层架构安全”的代际竞赛。当企业主在决策“AI矩阵系统哪家好”时,考量标准已不再是简单的分发功能,而是国内IP隔离的稳健性、全球大模型࿰…...
计算机毕业设计springboot长春的地铁综合服务管理系统 基于SpringBoot的城市轨道交通智慧运维管理平台 SpringBoot框架下的地铁运营调度与设备管控系统
计算机毕业设计springboot长春的地铁综合服务管理系统 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着城市化进程的加速推进,长春市作为东北地区的重要交通枢纽&…...
网安实验干货每日分享(Weevely配置使用)
网安实验干货每日分享(Weevely配置使用)-1031 渗透测试环境搭建与工具使用-Weevely配置使用 实验目的 熟悉Webshell管理工具Weevely的配置使用。 实验环境 操作机:Kali2018-TS (1)操作系统:Kali Linu…...
