栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

LeetCode刷题-回文类

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

LeetCode刷题-回文类

目录

LeetCode009. Palindrome Number回文数 | Easy

一、题目:

二、实现方法

方法一:转字符串

方法二:反转后半部分数字

三、可直接执行代码块

持续更新... 


LeetCode009. Palindrome Number回文数 | Easy

一、题目:


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

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。

示例 1:

输入:x = 121
输出:true
示例 2:

输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:

输入:x = 10
输出:false
解释:从右向左读, 为 01 。因此它不是一个回文数。
示例 4:

输入:x = -101
输出:false
 

提示:

-231 <= x <= 231 - 1
 

进阶:你能不将整数转为字符串来解决这个问题吗?

二、实现方法

方法一:转字符串

1. 负数一定不是回文串,可以直接返回false

2. 前后两两对比,只要不同就可以返回false

时间复杂度:O(n)
空间复杂度:O(1)?

func isPalindrome(x int)bool{
	if x<0{
		return  false
	}
	str:=strconv.Itoa(x)
	n:=len(str)
	for i:=0;i 

方法二:反转后半部分数字

1.思路:把后半部分的数字取出来反转,前后两个数字对比是否相等;
2.结束条件:当后>=前的时候可以结束取值反转, 即后<新时一直循环;
3.奇数偶数的问题,可以在最后返回时处理;如果数字位数为奇数,反转数字后,后半段数字/10就忽略了中间这个多出来的数;
4.以0结尾和负数的直接可以返回false;

时间复杂度:O(logN)
空间复杂度:O(1)


三、可直接执行代码块

package main

import (
	"fmt"
	"strconv"
)

func main()  {
	res:=isPalindrome2(12)
	fmt.Println(res)
}


func isPalindrome1(x int)bool{
	if x<0{
		return  false
	}
	str:=strconv.Itoa(x)
	n:=len(str)
	for i:=0;i 

持续更新...

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/990480.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号