首页 > 编程语言 >吴师兄学算法day07 双指针 9. 回文数

吴师兄学算法day07 双指针 9. 回文数

时间:2024-01-14 17:00:28浏览次数:33  
标签:right day07 len xArray array left 回文 指针

题目:9. 回文数

易错点:

  • 右指针要记得移动

我的代码:

class Solution:
    def isPalindrome(self, x: int) -> bool:
        array = list(str(x))
        right = len(array) -1
        for left in range(len(array)//2):
            if array[left] == array[right]:                
                pass
            else:
                return False
            right -=1
        return True

老师的写法:

class Solution:
    def isPalindrome(self, x: int) -> bool:

        # 转换为字符串数组的形式
        xArray = list(str(x))

        # 左边索引的位置在 0 
        left = 0

        # 右边索引的位置在 len(xArray) - 1
        right = len(xArray) - 1

        # 两个索引向内移动
        # left 向右移动
        # right 向左移动
        while left <= right:
            # 判断这两个元素值是否相同
            if xArray[left] != xArray[right]:
                # 如果不同,直接返回 False
                return  False

            # 否则,left 向右移动
            left += 1
        
            # right 向左移动
            right -= 1
         
         return True

总结:

  • QQSS

参考:

https://r07na4yqwor.feishu.cn/docx/FroBdgcXfoxHpLxnjbkcogb9nFb

标签:right,day07,len,xArray,array,left,回文,指针
From: https://www.cnblogs.com/liqi175/p/17963895

相关文章

  • [刷题班] LeetCode125. 验证回文串
    题目描述思路:左右指针只考虑数字和字母字母的话需要全部转化为小写然后使用左右指针判断是否是回文串方法一:classSolution{publicbooleanisPalindrome(Strings){List<Character>list=newArrayList<>();for(charc:s.toCharArray()){......
  • 吴师兄学算法day06 双指针 27. 移除元素
    题目:27. 移除元素易错点:差点猛住了,可以用pass顺着逻辑来识别代码示例:classSolution:defremoveElement(self,nums:List[int],val:int)->int:slow=0forfastinrange(len(nums)):ifnums[fast]==val:#删除......
  • 吴师兄学算法day06 双指针 283. 移动零
    题目:283. 移动零注意点:可以交换,也可以最后补零代码示例:classSolution:defmoveZeroes(self,nums:List[int])->None:"""Donotreturnanything,modifynumsin-placeinstead."""slow=0forfa......
  • 吴师兄学算法day06 双指针 485. 最大连续 1 的个数
    题目:485. 最大连续1的个数易错点:考察双指的距离注意设置lastzero=-1虚拟坐标为-1,方便做减法。注意,防止最后的1位越界。对应的处理方案就是每轮结束都有统计结果。其实减法,是左闭右右开的区间,比如,3-2是1,      写成区间是 [2,3),减法算的是距离而几到几,......
  • 智能指针和互斥锁
    RAII:ResourceAcquisitionIsInitialization(资源获取即初始化)classDynamicArray{private:int*data;//指向动态分配的数组的指针public:DynamicArray(intsize){data=newint[size];//在构造函数中分配内存}~DynamicArray(){......
  • 字符指针与字符数组的初始化
    字符指针可以初始化赋值一个字符串,字符数组初始化也可以赋值一个字符串。两者的区别是什么呢?#include<stdio.h>#include<string.h>intmain(){char*p="hello";//把字符串常量"hello"的首地址赋给pcharc[10]="hello";//等价于strcpy(c,"hello");c[......
  • 算法学习Day26组合总和、分割回文串
    Day26组合总和、分割回文串ByHQWQF2024/01/13笔记39.组合总和给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。解集......
  • C++ --- 智能指针
    一、智能指针存在的意义智能指针主要解决以下问题:(1)内存泄漏:内存手动释放,使用智能指针可以自动释放。(2)共享所有权指针的传播和释放,比如多线程使用同一个对象时析构问题。 智能指针的实现依赖于C++语言的RAII(资源获取即初始化)技术,即资源的获取和释放应该与对象的构造和析构分......
  • 滑动窗口(双指针的又一应用)
    滑动窗口相当于双指针的变形,通过j指向末尾边界,这样遍历就只有O(n)的数量级,再通过i指针作为起始边界,while循环确定最短的长度。因为ij所框定的边界像窗口,所以叫滑动窗口。用于解决的问题是最优区间的问题,记忆方法是右遍历,左判断,确定最佳区间。还有一个技巧是可以用INT_MAX表示一......
  • 双指针(1)
    目录344反转字符串替换数字反转单词null344反转字符串我如果要反转,就是最前面和最后面的字符进行交换,//双指针的应用classSolution{public:voidreverseString(vector<char>&s){intleft=0,right=s.size()-1;while(left<right){......