LeetCode之简单回文数

1. 题目

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:
输入: 121
输出: true示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。

2. 代码

方法一: 整数转化为字符串

  • 新的函数
    1. 高级注意!!! s[i] 是不能修改的!!!! 所以s[i] = c 错误的!!!! , 我们使用以下两种方法(只做简单介绍)
      方法一:
      char c = r + ‘0’; res = res + c; //由此可见,字符串是可以在其后面直接加字符的
      方法二:
      str.append(str1); //也是在后面进行添加的
      方法三:
      str.insert(1,2,‘h’); //意思是在str[1]之后添加两个h!!!!
    2. str.erase(1, 2); + str.insert() == 更替字符!!!
class Solution {
public:bool isPalindrome(int x) {if(x == 0) {return true;}if(x < 0 || (x % 10 == 0)){return false;}if(x < 10) {return true;}string res = "";int i = 0;do{int r = x % 10;char c = r + '0';res = res + c;x = x / 10;}while(x);string temp = res;std::reverse(temp.begin(), temp.end());if(temp == res) {return true;}return false;}
};
  • 新的函数

    1. char str[100] = {0} 表示初始化, 同时str[i] 在存储数字的时候,i已经保存了其长度
    2. 反转整数,并保存成字符串的方法!!! n = num%10; num = num / 10;
  • 核心思想

    1. while(num) 时候, num = 0是检测不到的!同时,个位数全都是回文数!
class Solution {
public:bool isPalindrome(int x) {char str[100] = {0};int i = 0, num = x;bool flag = false;if (num < 0)  return false;if(num < 10) return true;while(num) {               //num=0时不执行!!!  int n = num % 10;      //而且赋值之后要保证一直用的赋值之后的!!!str[i] = n + '0';i++;num /= 10;  }int j = 0;while(j <= i-1){if(str[j] == str[i-1]) {flag = true;j++;i--;}else{flag = false;break;}}return flag;}
};

方法二:数字反转

  • 核心思想
  1. 先将特殊的进行排除! 如负数 和 10、20、30等!!!
  2. 记住数的反转!!!!求各个位数 + 位数*10(或者100或者1000)
class Solution {
public:bool isPalindrome(int x) {// 特殊情况:// 如上所述,当 x < 0 时,x 不是回文数。// 同样地,如果数字的最后一位是 0,为了使该数字为回文,// 则其第一位数字也应该是 0// 只有 0 满足这一属性if(x < 0 || (x % 10 == 0 && x != 0)) {return false;}int reverseNum = 0;while(x > reverseNum) {reverseNum = reverseNum * 10 + x % 10;x /= 10;// 当数字长度为奇数时,我们可以通过 revertedNumber/10 去除处于中位的数字。// 例如,当输入为 12321 时,在 while 循环的末尾我们可以得到 x = 12,revertedNumber = 123,// 由于处于中位的数字不影响回文(它总是与自己相等),所以我们可以简单地将其去除。}return reverseNum == x || x == reverseNum/10;}
};

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

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

相关文章

python爬取全国真实地址_Python3爬虫全国地址信息

PHP方式写的一团糟所以就用python3重写了一遍&#xff0c;所以因为第二次写了&#xff0c;思路也更清晰了些。提醒&#xff1a;可能会有502的错误&#xff0c;所以做了异常以及数据库事务处理&#xff0c;暂时没有想到更好的优化方法&#xff0c;所以就先这样吧。待更懂python再…

Workflow WF Reference Links for 2009-02-13

Workflow Reference Links: 1. XPDL - The Silent Workhorse of BPM 我想如果要大致了解一下BPM的主要协议和规范&#xff0c;以及它们的关系&#xff0c;这是一篇很好的文章。在文章的后半部分&#xff0c;作者为XPDL进行了沉冤昭雪的工作。 2. Workflow Scalability a…

LeetCode 383. 赎金信

1. 题目 给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串&#xff0c;判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。 如果可以构成&#xff0c;返回 true &#xff1b;否则返回 false。 (题目说明&#xff1a;为了不暴露赎金信字迹&a…

LeetCode之最大正方形

1. 题目 在一个由 0 和 1 组成的二维矩阵内&#xff0c;找到只包含 1 的最大正方形&#xff0c;并返回其面积。示例:输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0输出: 42. 代码 函数 vector<vector> dp(m1, vector(n1, 0)); 定义二维vector以及其初始化&#xff…

WINCE应用的UI实现方案

一、MFC的硬伤 在接手现在这个项目之前&#xff0c;我对WINDOWS平台上的UI开发还是个白痴&#xff0c;除了MFC&#xff0c;就只知道GDI了。而且居然大言不惭地说用MFC只能画画灰色的对话框和按钮。但不论如何&#xff0c;在嵌入式这种对成本极度敏感的项目上&#xff0c;我是不…

python创建socket对象_python---一个简单的socket

server端:1 创建socket对象。调用socket构造函数。如&#xff1a;socket socket.socket( family, type )#family参数代表地址家族&#xff0c;可为AF_INET或AF_UNIX。AF_INET家族包括Internet地址&#xff0c;AF_UNIX家族用于同一台机器上的进程间通信。#type参数代表套接字类…

LeetCode 387. 字符串中的第一个唯一字符

1. 题目 给定一个字符串&#xff0c;找到它的第一个不重复的字符&#xff0c;并返回它的索引。 如果不存在&#xff0c;则返回 -1。 案例: s "leetcode" 返回 0. s "loveleetcode", 返回 2. 注意事项&#xff1a;您可以假定该字符串只包含小写字母。来…

vs中html如何设计分页_如何在电路设计中使用负载线(Load Line)?

本知识简介将描述负载线(Load Line)如何影响电路设计以及如何通过从I-V曲线创建负载(load)来分析电路。 整流二极管&#xff0c;LED和晶体管的电路分析包含非线性组件(例如整流二极管&#xff0c;发光二极管(LED)或晶体管)的电路无法使用我们通常应用于仅由电阻&#xff0c;电感…

ha ha

1.上大学的时候去衡山玩,当时爬山爬了一半,累的正想歇会的时候看到路边有个买纪念品的欧巴桑,上去开口就问:老婆........ 2.偶有次开车&#xff0c;有个美女同事搭车&#xff0c;一坐我旁边&#xff0c;偶特紧张滴说&#xff1a;把安全套带上&#xff01;美女以后再不理偶了。。…

LeetCode 405. 数字转换为十六进制数

1. 题目 给定一个整数&#xff0c;编写一个算法将这个数转换为十六进制数。 对于负整数&#xff0c;我们通常使用 补码运算 方法。 注意: 十六进制中所有字母(a-f)都必须是小写。 十六进制字符串中不能包含多余的前导零。 如果要转化的数为0&#xff0c;那么以单个字符’0’来…

LeetCode之两数之和

1. 题目 给定一个整数数组 nums 和一个目标值 target&#xff0c;请你在该数组中找出和为目标值的那 两个 整数&#xff0c;并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是&#xff0c;你不能重复利用这个数组中同样的元素。示例:给定 nums [2, 7, 11, 15],…

汉字转UNICODE?

Function Str_Gb2UniCode(text:String):String; var i,j,len: integer; cur: integer; t: String; ws: widestring; begin Result:; ws:text; len:length(ws); i:1; j:0; while i<len do begin cur:ord(ws[i]); FmtStr(t,%4.4X,[cur]);//BCD转换 Result…

LeetCode 412. Fizz Buzz

1. 题目 写一个程序&#xff0c;输出从 1 到 n 数字的字符串表示。 如果 n 是3的倍数&#xff0c;输出“Fizz” 如果 n 是5的倍数&#xff0c;输出“Buzz” 如果 n 同时是3和5的倍数&#xff0c;输出 “FizzBuzz” 示例&#xff1a; n 15, 返回: ["1","2&…

商务搜索引擎_2019年中国网民搜索引擎使用情况研究报告

中国互联网络信息中心(CNNIC)最新发布《2019年中国网民搜索引擎使用情况研究报告》。报告对中国网民的搜索引擎使用行为&#xff0c;搜索引擎用户属性、满意度和信任度&#xff0c;以及搜索广告接受程度等进行了全面展示&#xff0c;以反映国内搜索引擎业务的发展现状。报告显示…

创建自定义字段类型

演练&#xff1a;创建自定义字段类型 本主题提供了在以下最常见情况下创建自定义字段类型的分步指南&#xff1a;在列表视图和“显示”模式下字段的呈现由字段定义文件中的 RenderPattern 处理&#xff0c;而在“新建”和“编辑”模式下字段的呈现由与 CreateChildControls 方法…

LeetCode之两数相加

1.题目 给出两个 非空 的链表用来表示两个非负的整数。其中&#xff0c;它们各自的位数是按照 逆序 的方式存储的&#xff0c;并且它们的每个节点只能存储一位 数字。 如果&#xff0c;我们将这两个数相加起来&#xff0c;则会返回一个新的链表来表示它们的和。 您可以假设除了…

LeetCode 419. 甲板上的战舰

1. 题目 给定一个二维的甲板&#xff0c; 请计算其中有多少艘战舰。 战舰用 X表示&#xff0c;空位用 .表示。 你需要遵守以下规则&#xff1a; 给你一个有效的甲板&#xff0c;仅由战舰或者空位组成。 战舰只能水平或者垂直放置。 换句话说, 战舰只能由 1xN (1 行, N 列)组…

python展开 c函数中的宏预处理_C 语言常用的预处理-宏函数

#include // 宏函数 三目运算符#define MAX(A, B) A>B?A:B//宏函数 多行 添加\直接回车#define LOOP(FROM, TO, CONTENT)\for(int iFROM;iCONTENT\}//宏函数不需要确定参数类型 普通函数如下int _max(int a, int b) {return a > b ? a : b;}//有相同前缀void cSayHi() …

LeetCode之无重复字符的最长子串

1. 题目 给定一个字符串&#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xff0c;所以其长度为 3。 示例 2:输入: "bbbbb" 输出: 1 解释: 因为无重复…

LeetCode 434. 字符串中的单词数

1. 题目 统计字符串中的单词个数&#xff0c;这里的单词指的是连续的不是空格的字符。 请注意&#xff0c;你可以假定字符串里不包括任何不可打印的字符。 示例: 输入: "Hello, my name is John" 输出: 5 解释: 这里的单词是指连续的不是空格的字符&#xff0c;所…