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

C++基础(8)——string的相关面试题

目录

1.字符串转成整数

2.字符串相加

3.高精度加法模板(acwing)

4.验证回文串


1.字符串转成整数

题目:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。数值为0或者字符串不是一个合法的数值则返回0。输入的字符串包括数字字母符号,可以为空。

例子:

输入:"+2147483647"
输出:“2147483647”

思路:

分两步进行:1.先判断除第一个字符以外的其他字符,若不满足题意,则返回0,若满足则进行计算;2.最后判断第一个字符,若还是字符则进行计算并返回,若是正负号则加正负号返回,若都不是则返回0;

代码:

class Solution {
public:int StrToInt(string str) {if (str.size() == 0)return 0;int start = 0; int end = str.size() - 1; int ret = 0; int i = 1; while (start < end) {if (str[end] < '0' || str[end] > '9') {return 0;}ret += i*(str[end] - '0'); i *= 10; end--; }if (str[end] >= '0' && str[end] <= '9') return ret + i*(str[end] - '0'); if (str[end] == '+') return ret; if (str[end] == '-') return -ret; return 0; }
};

2.字符串相加

题目:

给定两个字符串形式的非负整数num1和num2,计算它们的和。

示例 1:

输入:num1 = "11", num2 = "123"
输出:"134"

示例 2:

输入:num1 = "456", num2 = "77"
输出:"533"

示例 3:

输入:num1 = "0", num2 = "0"
输出:"0"

思路:用高精度加法来模拟我们平常计算加法,将字符串逆置,设置进位来处理。

class Solution {
public:string addStrings(string A, string B) {if (A.size() < B.size()) return addStrings(B, A);reverse(A.begin(),A.end());//逆置用来模拟实现加法计算reverse(B.begin(),B.end());//逆置用来模拟实现加法计算string ret;//存储int t=0;for (int i = 0; i<A.size(); i ++ ){t += A[i]-'0';if (i <B.size()) t += B[i]-'0';ret.push_back(t % 10+'0');t /= 10;}if (t) ret.push_back(t+'0');//进位1reverse(ret.begin(),ret.end());//逆置返回return ret;}
};

3.高精度加法模板(acwing)

// C = A + B, A >= 0, B >= 0
vector<int> add(vector<int> &A, vector<int> &B)
{if (A.size() < B.size()) return add(B, A);vector<int> C;int t = 0;for (int i = 0; i < A.size(); i ++ ){t += A[i];if (i < B.size()) t += B[i];C.push_back(t % 10);t /= 10;}if (t) C.push_back(t);return C;
}

4.验证回文串

题目:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

示例:
 输入:“A man, a plan, a canal: Panama”
 输出:true

思路:

基本思路就是双指针的思路,由于要忽略字母的大小写,我们可以先将大写字母转换成小写字母,再进行双指针算法,并再++,--的过程中跳过一些无关的字符,直到左右指针相遇。

class Solution {
public:bool check(char ch){if ((ch >= 'a' && ch <= 'z')|| (ch >= '0' && ch <= '9'))return true;elsereturn false;}bool isPalindrome(string s) {for (auto& ch : s){if (ch >= 'A' && ch <= 'Z')ch += 32;}int begin = 0, end = s.size() - 1;while (begin < end) //当还有字母未判断时,循环继续{while (begin < end && !isLetterOrNumber(s[begin])) begin++;while (begin < end && !isLetterOrNumber(s[end])) end--;if (s[begin] == s[end]) {begin++;end--;}else return false; }return true; }
};

相关文章:

C++基础(8)——string的相关面试题

目录 1.字符串转成整数 2.字符串相加 3.高精度加法模板&#xff08;acwing&#xff09; 4.验证回文串 1.字符串转成整数 题目&#xff1a;将一个字符串转换成一个整数&#xff0c;要求不能使用字符串转换整数的库函数。数值为0或者字符串不是一个合法的数值则返回0。输入的…...

【Docker】06-DockerCompose

1. Docker compose 2. Docker Compose部署项目 docker-compose.yml version: "3.8"services:mysql:image: mysqlcontainer_name: mysqlports:- "3307:3306"environment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: 123volumes:- "/root/docker/mysql/…...

代码随想录训练营Day27 | 77. 组合 | 216.组合总和III | 17.电话号码的字母组合

学习文档&#xff1a;代码随想录 (programmercarl.com) 视频链接&#xff1a;代码随想录算法公开课 | 最强算法公开课 | 代码随想录 (programmercarl.com) Leetcode 77. 组合 题目描述 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以…...

Linux文件重定向文件缓冲区

目录 一、C文件接口 二、系统文件I/O 2.1认识系统文件I/O 2.2系统文件I/O 2.3系统调用和库函数 2.4open( )的返回值--文件描述符 2.5访问文件的本质 三、文件重定向 3.1认识文件重定向 3.2文件重定向的本质 3.3在shell中添加重定向功能 3.4stdout和stderr 3.5如何理…...

训练贪吃蛇ai的后续记录

发现可以结合遗传算法的思路&#xff0c;产生更好的效果。 即每训练一段时间&#xff0c;就停下来测试一下新模型的效果。如果效果优于记录中最好的&#xff0c;则继续导入该模型并训练。重复几次&#xff0c;效果可能更好。 例如&#xff0c;昨晚我便通过唯一一个在十次测试中…...

WPF 手撸插件 八 操作数据库一

1、本文将使用SqlSugar创建Sqlite数据库&#xff0c;进行入门的增删改查等操作。擦&#xff0c;咋写着写着凌乱起来了。 SqlSugar官方文档&#xff1a;简单示例&#xff0c;1分钟入门 - SqlSugar 5x - .NET果糖网 2、环境SqlSugar V5.0版本需要.Net Framework 4.6 &#xff0…...

代数结构基础 - 离散数学系列(八)

目录 1. 群&#xff08;Group&#xff09; 群的定义 群的示例 2. 环&#xff08;Ring&#xff09; 环的定义 环的示例 3. 域&#xff08;Field&#xff09; 域的定义 域的示例 域在密码学中的应用 4. 实际应用场景 1. 对称性与加密 2. 误差检测与纠正 3. 数据编码…...

函数的arguments为什么不是数组?如何转化为数组?

因为arguments本身并不能调用数组方法&#xff0c;它是一个另外一种对象类型&#xff0c;只不过属性从0开始排&#xff0c;依次为0 1 2…最后还有callee和length属性&#xff0c;我们也把这样的对象成为类数组。 常见的类数组还有&#xff1a; 1.用getElementsByTagName/Class…...

Java之反射

目录 反射 定义 主要用途 反射相关的类 Class类中【获得类相关方法】 Class类中【获得类中属性相关的方法】 Class类中【获得类中注解相关的方法】 Class类中【获得类中构造器相关的方法】 Class类中【获得类中方法相关的方法】 获得Class对象 代码示例1 代码示例…...

3dsMax添加天空盒

点击渲染&#xff0c;环境 &#xff0c; 点击位图 找到要设置的天空HDR&#xff0c;可以使用HDR(EXR)贴图 一个可以下载HDR贴图的网站 https://polyhaven.com/hdris在渲染的时候不要使用使用微软输入法&#xff0c;3dsmax会卡死&#xff0c; 在渲染的时候不要使用使用微软…...

C语言的类型提升机制

概念 在C语言中&#xff0c;整数类型按照其大小可以分为以下几类&#xff08;从小到大&#xff09;&#xff1a; charshortintlonglong long 当在表达式中涉及这些类型的混合运算时&#xff0c;较小的类型会被提升为较大的类型。具体规则如下&#xff1a; ①char 和 short …...

Pandas和Seaborn数据可视化

Pandas数据可视化 学习目标 本章内容不需要理解和记忆&#xff0c;重在【查表】&#xff01; 知道数据可视化的重要性和必要性知道如何使用Matplotlib的常用图表API能够找到Seaborn的绘图API 1 Pandas数据可视化 一图胜千言&#xff0c;人是一个视觉敏感的动物&#xff0c;大…...

爬虫(Python版本)

1.爬虫的法律问题 爬虫技术&#xff08;Web Scraping&#xff09;指通过程序自动访问网页并提取其中的数据。在使用爬虫的过程中&#xff0c;涉及到一些法律法规和合规性问题。 常见法律风险 ①未经授权的访问&#xff1a;很多网站对爬虫行为设置了限制。如果未获得授权就进行…...

【分布式训练 debug】VS Code Debug 技巧:launch.json实用参数

VS Code Debug技巧&#xff1a;launch.json实用参数 在使用Visual Studio Code (VS Code)进行调试时&#xff0c;launch.json文件是一个强大的工具&#xff0c;它允许你自定义调试会话。以下是一些实用的参数&#xff0c;可以帮助你更有效地调试Python代码。 1. 调试第三方库…...

pycharm连接linux服务器需要提前安装ssh服务

在 Debian 或 Ubuntu 系统上&#xff0c;使用 APT&#xff1a; bash复制代码 sudo apt-get install openssh-server 在基于 RPM 的系统如 CentOS 或 RHEL 上&#xff0c;使用 YUM 或 DNF&#xff1a; bash复制代码 sudo yum install openssh-server 或对于较新的 RHEL/Cent…...

通信工程学习:什么是LAN局域网、MAN城域网、WAN广域网

LAN局域网、MAN城域网、WAN广域网 LAN&#xff08;Local Area Network&#xff0c;局域网&#xff09;、MAN&#xff08;Metropolitan Area Network&#xff0c;城域网&#xff09;和WAN&#xff08;Wide Area Network&#xff0c;广域网&#xff09;是计算机网络中根据覆盖范围…...

LeetCode热题100速通

一丶哈希 1、两数之和&#xff08;简单&#xff09; 给定一个整数数组 n u m s nums nums 和一个整数目标值 t a r g e t target target&#xff0c;请你在该数组中找出 和为目标值 t a r g e t target target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设…...

Python代码编写KDJ指标

KDJ指标由三部分组成&#xff1a;K值、D值、J值&#xff0c;主要用于分析股票市场的超买超卖状态及股价波动的趋势。博主记录学习编写KDJ指标线 import numpy as npdef calculate_kdj(close_prices, n9, m13, m23):"""计算KDJ指标:param close_prices: 收盘价序…...

传统少数民族物品检测系统源码分享

传统少数民族物品检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…...

深度学习中的迁移学习:预训练模型微调与实践

深度学习中的迁移学习&#xff1a;预训练模型微调与实践 目录 &#x1f4a1; 迁移学习的核心概念&#x1f9e0; 预训练模型的使用&#xff1a;ResNet与VGG的微调&#x1f3e5; 迁移学习在医学图像分析中的应用&#x1f504; 实践中的迁移学习微调过程 1. &#x1f4a1; 迁移学…...

别再只会用IP核了!手把手教你用Verilog RTL代码实现一个简单的RAM(附仿真对比)

从寄存器阵列到存储矩阵&#xff1a;Verilog RTL实现RAM的底层逻辑与工程实践 在FPGA和数字IC设计中&#xff0c;RAM&#xff08;随机存取存储器&#xff09;如同数字世界的记事本&#xff0c;承载着数据暂存与交换的关键使命。许多工程师习惯于直接调用供应商提供的IP核&#…...

别再傻傻用二维数组存大矩阵了!手把手教你用C++实现稀疏矩阵的三元组压缩(附完整代码)

稀疏矩阵高效存储实战&#xff1a;从三元组压缩到十字链表的C实现 当你在处理一个1000010000的矩阵&#xff0c;却发现其中99%的元素都是零时&#xff0c;传统的二维数组存储方式就像用集装箱运输几颗散落的珍珠——浪费了巨大的空间和运输成本。这种"稀疏"场景在科学…...

【递归算法】全排列 Ⅱ

题目链接 文章摘要&#xff1a; 本文解析了LeetCode上"全排列II"问题&#xff0c;要求在包含重复数字的数组中返回所有不重复的全排列。通过分析决策树&#xff0c;指出需在标准全排列解法基础上增加剪枝策略&#xff0c;避免重复结果。详细讲解了两种剪枝思路&#…...

DMG2IMG终极指南:3分钟掌握苹果DMG文件跨平台转换技巧

DMG2IMG终极指南&#xff1a;3分钟掌握苹果DMG文件跨平台转换技巧 【免费下载链接】dmg2img DMG2IMG allows you to convert a (compressed) Apple Disk Images (imported from http://vu1tur.eu.org/dmg2img). Note: the master branch contains imported code, but lacks bug…...

Path of Building完全指南:精准规划角色构筑3步法+高效配置策略

Path of Building完全指南&#xff1a;精准规划角色构筑3步法高效配置策略 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/gh_mirrors/pat/PathOfBuilding Path of Building是一款强大的离线工具&#xff0c…...

如何零配置搭建专业级视觉交互系统:MediaPipe TouchDesigner完全指南

如何零配置搭建专业级视觉交互系统&#xff1a;MediaPipe TouchDesigner完全指南 【免费下载链接】mediapipe-touchdesigner GPU Accelerated MediaPipe Plugin for TouchDesigner 项目地址: https://gitcode.com/gh_mirrors/me/mediapipe-touchdesigner 想要在TouchDes…...

3步突破设备壁垒:让VR内容在普通显示器上重生的开源方案

3步突破设备壁垒&#xff1a;让VR内容在普通显示器上重生的开源方案 【免费下载链接】VR-reversal VR-Reversal - Player for conversion of 3D video to 2D with optional saving of head tracking data and rendering out of 2D copies. 项目地址: https://gitcode.com/gh_…...

避坑指南:Xilinx MIG降频配置与Synopsys VIP仿真的时序参数设置

Xilinx MIG降频配置与Synopsys VIP仿真的时序参数避坑指南 在高速存储接口设计中&#xff0c;DDR控制器的配置与验证往往是项目成败的关键节点。当遇到需要降频使用的场景时——比如标称2400MHz的颗粒实际运行在2000MHz——工程师往往会在时序参数配置和验证环境匹配上踩坑。本…...

UnityFigmaBridge:革新性设计开发衔接工具,无缝连接Figma与Unity生态

UnityFigmaBridge&#xff1a;革新性设计开发衔接工具&#xff0c;无缝连接Figma与Unity生态 【免费下载链接】UnityFigmaBridge Easily bring your Figma Documents, Components, Assets and Prototypes to Unity 项目地址: https://gitcode.com/gh_mirrors/un/UnityFigmaBr…...

质子交换膜燃料电池三维模型创建与流场仿真教程

质子交换膜燃料电池三维模型创建和fluent流场仿真教程。 单电池&#xff0c;单电池带冷却水通道&#xff0c;电堆&#xff0c;电堆带冷却通道三维流场仿真&#xff0c;后处理压力分布&#xff0c;温度分布&#xff0c;流线轨迹&#xff0c;氢气氧气浓度分布等。质子交换膜燃料电…...