其他刷题记录见博客首页

1,leecode125 验证回文串

原题:

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

说明:本题中,我们将空字符串定义为有效的回文串。

实例:

输入: "A man, a plan, a canal: Panama"
输出: true 输入: "race a car"
输出: false

解决:

定义游标i j,i自左向右移动,j自右向左移动,判断字母数字i j是否相等即可

时间复杂度O(n)

空间复杂度O(1)

class Solution {
private boolean isAlphanumeric(char c){
return ((c>='a'&& c<='z')||(c>='A'&&c<='Z')||(c>=''&&c<=''));
}
private boolean isEqualIgnoreCase(char a,char b){
//小写字母a比大写字母A大32
if (a>='A'&& a<='Z') a+=;
if (b>='A'&& b<='Z') b+=;
return a==b;
}
public boolean isPalindrome(String s){
if (s==null||s.length()==) return true;
int i=,j=s.length()-;
for (;i<j;++i,--j){
//判断游标i,j是否为字符或数字,charAt(i)取i位置的字符,放在for循环里,把字符串遍历,取每个字符
while (i<j&&!isAlphanumeric(s.charAt(i))) i++;
while (i<j&&!isAlphanumeric(s.charAt(j))) j--;
//判断每对i,j游标是否相等
if (i<j&&!isEqualIgnoreCase(s.charAt(i),s.charAt(j))){
return false;
} }
return true; }
}

2, leetcode234 回文链表

题目:

请判断一个链表是否为回文链表。

实例:

输入: ->
输出: false 输入: ->->->
输出: true

解决:

定义指向当前节点的cur,和指向前一节点的pre,for循环限定执行1/2 length次,由于cur改变指向后单链表就断了,所以把cur.next下一节点存储起来。

cur指向前一节点pre,pre移到cur位置,cur移到next位置,判断长度是否为奇数,否则cur继续移动一位,pre和cur各自向俩头移动进行比较是否相同

(链表中next为指向下一节点的指针)

class Solution {
public boolean isPalindrome(ListNode head) {
int len=;
     //反转一半的链表
for (ListNode p=head;p!=null;p=p.next,++len);
ListNode cur =head;
ListNode pre=null;
for (int i=;i<len/;i++) {
ListNode next = cur.next;
cur.next = pre;
pre = cur;
cur = next;
}
if (len%==) cur=cur.next;
for (;pre!=null&&cur!=null;cur=cur.next,pre=pre.next){
if (cur.val!=pre.val){
return false;
}
}return true;
}
}

最新文章

  1. c++ 使用shell命令
  2. Android JNI HelloWorld实现
  3. 校省选赛第一场D题TwoDecks题解
  4. CSU 1111 有三户人家共拥有一座花园,每户人家的太太均需帮忙整理花园。A 太太工作了5 天,B 太太则工作了4 天,才将花园整理完毕。C 太太因为正身怀六甲无法加入她们的行动,所以就打算出90元钱
  5. 《数据通信与网络》笔记--虚电路网络:帧中继和ATM
  6. uCGUI的文字与数值显示方法
  7. java private修饰的类和变量
  8. rabbitmq的构架和原理(三)
  9. ml-agent:Win10下环境安装
  10. 2.Linux基础命令
  11. 在datasnap 中使用unidac 访问数据(服务器端)
  12. 演示一下:rm -rf /
  13. asp.net缓存使用介绍
  14. pt-archiver数据归档
  15. centos系统服务管理
  16. BZOJ3632: 外太空旅行
  17. [摘]Android逆向分析常用网站
  18. 【学时总结】◆学时&#183;VIII◆ 树形DP
  19. python基础-第五篇-5.2递归
  20. 10 Vue 学习 shortList页面

热门文章

  1. Android源码项目目录结构
  2. 0302IT行业虽吃香,能完全享受这块“香&quot;的也很难
  3. CCF——相邻数对201409-1
  4. 【Nginx】nginx为目录或网站加上密码认证
  5. 修改表中的enum字段
  6. flink写入mysql的两种方式
  7. AtCoder Grand Contest 019 B: Reverse and Compare
  8. 【bzoj5133】[CodePlus2017年12月]白金元首与独舞 并查集+矩阵树定理
  9. 3294 [SCOI2016]背单词
  10. CF1093F Vasya and Array DP