13/100 N字形变换 14/100整数反转 15/100字符串转换整数atoi 16/100回文数

题目13/100:N字形变换

将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。

比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:

P A H N
A P L S I I G
Y I R

之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。

请你实现这个将字符串进行指定行数变换的函数:

string convert(string s, int numRows);

题解

class Solution {
public:string convert(string s, int numRows) {if(numRows == 1) return s;vector<string> tmpString(numRows);bool direct = false;//因为i==0 初始是true 进循环就变成false i下一把就小于0  int i = 0;string res;for(auto c: s){tmpString[i] += c;if(i == 0 || i == numRows-1){//要改变方向direct = !direct;}i += direct?1:-1;//往下就+1  往上-1}for(auto str: tmpString){res += str;}return res;}
};

题目:14/100整数反转

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
在这里插入图片描述

题解:

思路上讲挺简单,依次取到最后一位,再除以10更新数字

class Solution {
public:int reverse(int x) {int res = 0;int num = 0;while(x){num = x%10;x = x/10;res = res*10 + num;}if(res > INT_MAX  || res<INT_MIN )return 0;return res;}
};//除10取余 得到最后一位  x=x除以10
//*10+得到的数目

默认的测试案例可以通过,但提交报错
在这里插入图片描述
添加到测试案例,发现是当x = 1534236469时有问题,在最后一个循环的rev=964632435, res = res*10 + num > INT_MAX 发生溢出
在这里插入图片描述

res = res*10 + num;//有可能会溢出,所以在这之前就要判断是否满足

−2^31≤res*10 + numt≤2^31−1

修改后代码:

class Solution {
public:int reverse(int x) {int res = 0;int num = 0;while(x)//也会存在负数  非0是true{if(res > INT_MAX/ 10  || res<INT_MIN/ 10 ) //−2^31≤res*10 + numt≤2^31−1return 0;num = x%10;x = x/10;res = res*10 + num;//有可能会溢出,所以在这之前就要判断是否满足}return res;}
};//除10取余 得到最后一位  x=x除以10
//*10+得到的数目

题目:15/100 字符串转换整数

请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。

函数 myAtoi(string s) 的算法如下:

读入字符串并丢弃无用的前导空格
检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。
读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。
将前面步骤读入的这些数字转换为整数(即,"123" -> 123, "0032" -> 32)。如果没有读入数字,则整数为 0 。必要时更改符号(从步骤 2 开始)。
如果整数数超过 32 位有符号整数范围 [−231,  231 − 1] ,需要截断这个整数,使其保持在这个范围内。具体来说,小于 −231 的整数应该被固定为 −231 ,大于 231 − 1 的整数应该被固定为 231 − 1 。
返回整数作为最终结果。

注意:

本题中的空白字符只包括空格字符 ' ' 。
除前导空格或数字后的其余字符串外,请勿忽略 任何其他字符。

在这里插入图片描述

题解:

根据题目要求写的ifelse

class Solution {
public:int myAtoi(string s) {bool isNeg = false;bool isStart = false;int num = 0;for(auto c: s){//判断是不是空格if(c == ' ')continue;if(c == '-' && isStart == false){isNeg = true;continue;}else if(c == '+' && isStart == false ){isNeg = false;continue;}// else if(0<=(c-'0')<=9)else if (isdigit(c)){isStart = true;//开始正文了//提取数字if(num<INT_MIN/10) break;if(num>INT_MAX/10) break;num = num*10 + (c-'0');}else{isStart = true;return num;}}return isNeg?-num:num;}
};

解题错误,只通过了部分测试用例:在这里插入图片描述
修改之后不断有case报错,

class Solution {
public:int myAtoi(string s) {bool isNeg = false;bool isStart = false;int num = 0;for(auto c: s){//判断是不是空格if(c == ' ')continue;if(c == '-' && isStart == false){isNeg = true;isStart = true;continue;}else if(c == '+' && isStart == false ){isNeg = false;isStart = true;continue;}// else if(0<=(c-'0')<=9)else if (isdigit(c)){isStart = true;//开始正文了//提取数字if(num<INT_MIN/10 || num>INT_MAX/10){return isNeg?INT_MIN:INT_MAX;}num = num*10 + (c-'0');}else{isStart = true;break;}}return isNeg?-num:num;}
};

在这里插入图片描述

应该换种思路,或者思路更全面一些,有一些些烦了,做下一题换换脑子

如果面试中遇到类似的问题,应先仔细阅读题目文字说明和示例,有疑惑的地方和需要和面试官确认,在编码的时候需要耐心和细心地调试 切记烦躁慌张

在这里插入图片描述累累了

16/100回文数

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

例如,121 是回文,而 123 不是。

在这里插入图片描述

题解:

边界条件:负数,个位为0的非零数
判断条件:把前部分翻转 是否和后部分相等

class Solution {
public:bool isPalindrome(int x) {if(x<0 || (x % 10 == 0 && x != 0)) return false;//转换数字,是否与原来数字相等int reverseNum = 0;while(x>reverseNum)//优化,只反转一半的数字{reverseNum = reverseNum*10 + x%10;x /= 10;}// 当数字长度为奇数时,我们可以通过 reverseNum/10 去除处于中位的数字。中位数没有关系return reverseNum == x || reverseNum/10 == x;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/286328.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

亚信安慧AntDB数据库引领大数据新纪元,星河案例彰显卓越表现

亚信科技及其附属公司亚信安慧在第六届大数据“星河”案例评选中&#xff0c;凭借其卓越的数据库技术实力&#xff0c;再次站在了行业的聚光灯下。这次的显著成果不仅是对亚信科技技术能力的肯定&#xff0c;更是对其在数据库领域持续创新和领先地位的认可。 图&#xff1a;亚信…

.NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证

public Task InvokeAsync(HttpContext context){// 获取终点路由特性var endpointFeature context.Features.Get<IEndpointFeature>();// 获取是否定义了特性var attribute endpointFeature?.Endpoint?.Metadata?.GetMetadata<AllowAnonymousAttribute>();if …

短视频账号矩阵系统源码3年开发技术搭建

一、短视频矩阵系统建模----技术api接口--获取用户授权 技术文档分享&#xff1a; 本系统采用MySQL数据库进行存储&#xff0c;数据库设计如下&#xff1a; 1.用户表&#xff08;user&#xff09;&#xff1a; - 用户ID&#xff08;user_id&#xff09; - 用户名&#xff08;…

黑马React:基础拓展

黑马React: D10-基础拓展 Date: December 18, 2023 useReducer 基础使用 作用: 让 React 管理多个相对关联的状态数据 补充&#xff1a;和useState的作用类似&#xff0c;用来管理相对复杂的状态数据 **特点&#xff1a;**useReducer返回值为一个数组, 可以解构处数值stat…

蓝桥杯嵌入式——串口

CUBE里配置成异步模式&#xff0c;设置波特率&#xff0c;打开中断&#xff08;先配置LCD再配置串口&#xff09;&#xff1a; 串口发送 main.c #include "string.h" char temp[20]; sprintf(temp,"Hello World\r\n"); HAL_UART_Transmit(&huart1,(…

FO with Prefix Hashing KEM Generalizations

参考文献&#xff1a; [Has88] Hastad J. Solving simultaneous modular equations of low degree[J]. siam Journal on Computing, 1988, 17(2): 336-341.[BBM00] Bellare M, Boldyreva A, Micali S. Public-key encryption in a multi-user setting: Security proofs and im…

Linux命令行实战指南:快速上手常用命令大全!

Linux 常见目录说明 /bin&#xff1a;存放二进制可执行文件(ls、cat、mkdir 等)&#xff0c;常用命令一般都在这里&#xff1b;/sbin: 存放二进制可执行文件&#xff0c;只有 root 才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如 ifconfig 等&#xff…

【Apache-StreamPark】Flink 开发利器 StreamPark 的介绍、安装、使用

【Apache-StreamPark】Flink 开发利器 StreamPark 的介绍、安装、使用 1&#xff09;框架介绍与引入1.1.&#x1f680; 什么是 StreamPark1.2.&#x1f389; Features1.3.&#x1f3f3;‍&#x1f308; 组成部分1.4.引入 StreamPark 2&#xff09;安装部署2.1.环境要求2.2.Hado…

Java代码解析:初学者的编程入门指南

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 Java作为一门强大而广泛应用的编程语言&#x…

2023年12月最新软件测试面试题(带答案)

1. 请自我介绍一下(需简单清楚的表述自已的基本情况&#xff0c;在这过程中要展现出自信&#xff0c;对工作有激情&#xff0c;上进&#xff0c;好学) 面试官您好&#xff0c;我叫###&#xff0c;今年26岁&#xff0c;来自江西九江&#xff0c;就读专业是电子商务&#xff0c;毕…

Axure之交互与情节与一些实例

目录 一.交互与情节简介 二.ERP登录页到主页的跳转 三.ERP的菜单跳转到各个页面的跳转 四.省市联动 五.手机下拉加载 今天就到这里了&#xff0c;希望帮到你哦&#xff01;&#xff01;&#xff01; 一.交互与情节简介 "交互"通常指的是人与人、人与计算机或物体…

SecureCRT for Mac/win强大安全的终端SSH工具,SecureCRT助您网络连接无忧

在当今数字化时代&#xff0c;网络连接已成为生活和工作中不可或缺的一部分。而对于需要进行远程访问和管理的用户来说&#xff0c;一个稳定、安全的终端SSH工具是至关重要的。SecureCRT作为一款强大的终端SSH工具&#xff0c;为用户提供了安全、高效的远程连接解决方案。 首先…