LCP9回文数[leetcode-9-easy]

2024-08-21 14:04
文章标签 leetcode 回文 easy lcp9

本文主要是介绍LCP9回文数[leetcode-9-easy],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

LCP,9回文数

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

回文数

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

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

回文可谓大学半桶水教育的常见题目,过去我也写过不少,但是怎么写的又快又好,是个问题
今天用升了级的方法论:双指针来写写

class Solution {
public:bool isPalindrome(int x) {//给算法加速:显然负数不是回文数if (x < 0) return false;/*其实分析可见更多边界条件:负数和以0结尾的数字(除了0本身)不是回文数if (x < 0 || (x % 10 == 0 && x != 0)) return false;但是,过长的边界往往会拖慢程序运行的速度这个语句的运行效率甚至不如简单的负数判断因为条件机构不符合CPU的流水线机构,会拖慢程序运行的速度(顺序和循环则不是)所以条件应尽可能简明,复杂边界往往适得其反*///对于字符串类的问题,或者可以转化为字符串的问题,to_string简直太好用string s = to_string(x);int l = 0;int r = s.length() - 1;//基数转换bool deleted = false; // 使用这个标记来记录是否使用了删除权限while (l <= r) {//如果有奇长度,则最后两个指针重合if (l == r)return true;//如果有偶数长度,则最后两个指针相邻if (s[l] == s[r]) {//保证指向的值相同if (l + 1 == r) return true;++l;--r;}//注意不相等直接退出else return false;}return false;}
};

看看效果

可惜,不是100% ,不过这也可见双指针的威力之大。我23年其实写过这题一遍,当时傻乎乎的,用的vector存每位数字上的值,存完再对比,足足花了28ms,

在这里插入图片描述

这篇关于LCP9回文数[leetcode-9-easy]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

使用easy connect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题

《使用easyconnect之后,maven无法使用,原来需要配置-Djava.net.preferIPv4Stack=true问题》:本文主要介绍使用easyconnect之后,maven无法... 目录使用easGWowCy connect之后,maven无法使用,原来需要配置-DJava.net.pr

SpringBoot集成图片验证码框架easy-captcha的详细过程

《SpringBoot集成图片验证码框架easy-captcha的详细过程》本文介绍了如何将Easy-Captcha框架集成到SpringBoot项目中,实现图片验证码功能,Easy-Captcha是... 目录SpringBoot集成图片验证码框架easy-captcha一、引言二、依赖三、代码1. Ea

C++实现回文串判断的两种高效方法

《C++实现回文串判断的两种高效方法》文章介绍了两种判断回文串的方法:解法一通过创建新字符串来处理,解法二在原字符串上直接筛选判断,两种方法都使用了双指针法,文中通过代码示例讲解的非常详细,需要的朋友... 目录一、问题描述示例二、解法一:将字母数字连接到新的 string思路代码实现代码解释复杂度分析三、

SpringBoot整合easy-es的详细过程

《SpringBoot整合easy-es的详细过程》本文介绍了EasyES,一个基于Elasticsearch的ORM框架,旨在简化开发流程并提高效率,EasyES支持SpringBoot框架,并提供... 目录一、easy-es简介二、实现基于Spring Boot框架的应用程序代码1.添加相关依赖2.添

哈希leetcode-1

目录 1前言 2.例题  2.1两数之和 2.2判断是否互为字符重排 2.3存在重复元素1 2.4存在重复元素2 2.5字母异位词分组 1前言 哈希表主要是适合于快速查找某个元素(O(1)) 当我们要频繁的查找某个元素,第一哈希表O(1),第二,二分O(log n) 一般可以分为语言自带的容器哈希和用数组模拟的简易哈希。 最简单的比如数组模拟字符存储,只要开26个c

csu1328(近似回文串)

题意:求近似回文串的最大长度,串长度为1000。 解题思路:以某点为中心,向左右两边扩展,注意奇偶分开讨论,暴力解即可。时间复杂度O(n^2); 代码如下: #include<iostream>#include<algorithm>#include<stdio.h>#include<math.h>#include<cstring>#include<string>#inclu

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO

leetcode-24Swap Nodes in Pairs

带头结点。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/public class Solution {public ListNode swapPairs(L

leetcode-23Merge k Sorted Lists

带头结点。 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val = x; }* }*/public class Solution {public ListNode mergeKLists

C++ | Leetcode C++题解之第393题UTF-8编码验证

题目: 题解: class Solution {public:static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num &