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

LeetCode906. Super Palindromes

文章目录

    • 一、题目
    • 二、题解

一、题目

Let’s say a positive integer is a super-palindrome if it is a palindrome, and it is also the square of a palindrome.

Given two positive integers left and right represented as strings, return the number of super-palindromes integers in the inclusive range [left, right].

Example 1:

Input: left = “4”, right = “1000”
Output: 4
Explanation: 4, 9, 121, and 484 are superpalindromes.
Note that 676 is not a superpalindrome: 26 * 26 = 676, but 26 is not a palindrome.
Example 2:

Input: left = “1”, right = “2”
Output: 1

Constraints:

1 <= left.length, right.length <= 18
left and right consist of only digits.
left and right cannot have leading zeros.
left and right represent integers in the range [1, 1018 - 1].
left is less than or equal to right.

二、题解

class Solution {
public:bool isPalindrome(long long num){long offset = 1;while(num / offset >= 10){offset *= 10;}while(num){if(num / offset != num % 10) return false;num = (num % offset) / 10;offset /= 100;}return true;}long long oddEnlarge(long long seed){long long res = seed;seed /= 10;while(seed){res = res * 10 + seed % 10;seed /= 10;}return res;}long long evenEnlarge(long long seed){long long res = seed;while(seed){res = res * 10 + seed % 10;seed /= 10;}return res;}bool check(long long num,long l,long r){return num >= l && num <= r && isPalindrome(num);}int superpalindromesInRange(string left, string right) {long long l = stol(left);long long r = stol(right);long long limit = (long long)sqrt((double)r);long long seed = 1;long long num = 0;int res = 0;do{//偶数长度回文数num = evenEnlarge(seed);if(num <= (long long)sqrt(double(LONG_LONG_MAX)) && check(num * num,l,r)) res++;//奇数长度回文数num = oddEnlarge(seed);if(num <= (long long)sqrt(double(LONG_LONG_MAX)) && check(num * num,l,r)) res++;seed++;}while(num < limit);return res;}
};

相关文章:

  • 基于模块自定义扩展字段的后端逻辑实现(一)
  • php 字符串常用函数
  • 计算机找不到msvcr100.dll的多种解决方法分享,轻松解决dll问题
  • 中国智造闪耀CES | 木牛科技在美国CES展亮相多领域毫米波雷达尖端方案
  • redis stream restTemplate消息监听队列框架搭建
  • 零基础也可以探索 PyTorch 中的上采样与下采样技术
  • 以太网交换机——稳定安全,构筑数据之桥
  • 【2019】360Java工程师客观题总结
  • AI绘画软件Stable Diffusion模型/Lora/VAE文件存放位置
  • vue前端开发自学demo,父子组件之间传递数据demo2
  • 235.【2023年华为OD机试真题(C卷)】机器人搬砖(二分查找-JavaPythonC++JS实现)
  • 硬核加码!星邦蓝助力全球运力最大固体火箭“引力一号”海上首飞
  • python处理目录下文本文件去除空格和空行
  • 关于Python里xlwings库对Excel表格的操作(三十二)
  • Rust类型之字符串
  • 【技术性】Search知识
  • 0基础学习移动端适配
  • 4. 路由到控制器 - Laravel从零开始教程
  • Babel配置的不完全指南
  • CSS3 变换
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Docker容器管理
  • DOM的那些事
  • java 多线程基础, 我觉得还是有必要看看的
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Python打包系统简单入门
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • ------- 计算机网络基础
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 【云吞铺子】性能抖动剖析(二)
  • ionic异常记录
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 整理一些计算机基础知识!
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (二)PySpark3:SparkSQL编程
  • (分类)KNN算法- 参数调优
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (附源码)ssm码农论坛 毕业设计 231126
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (力扣)循环队列的实现与详解(C语言)
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (推荐)叮当——中文语音对话机器人
  • (小白学Java)Java简介和基本配置
  • (转)Android学习笔记 --- android任务栈和启动模式
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET Reactor简单使用教程
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @Async注解的坑,小心
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • [BZOJ4010]菜肴制作