Day 2

第一题:

 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。(来自LeetCode)

1、为更好的计算不重复的最长子串长度,可以创建一个256位的map数组来判定遍历的字符是否重复,用1和0来表示该字符在此时的子串中是否重复;

  用start和end指向字符串的起始位置,max来接收最长字串的长度;

  当子串内没有重复的字符时,end后移一位,当有重复字符时,start后移一位,期间用max接收最长不重复子串的长度。

  

第七题:

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。(来自LeetCode)

1、对于一个多位数,需要将它反转,可以先将该数的最低位取出,将其保存到另一个数n中;

  再将多位数的十位取出,用n*10加上十位数字,这样就将后两位反转了;

  在其他高位上也可以这样操作。


 第九题:

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。(来自LeetCode)

1、判断是否位回文数,当这个整数是负数时,它不可能时回文数;

  当它是正数时,可以使用第七题里面的反转将这个整数反转过来,用n来接收反转后的数;

  再来判断n和该数是否相等;

  

原文地址:https://www.cnblogs.com/liang-yi-/p/13118203.html