银联-01.回文链表(重要!!!)

链表涉及到回文——如果解决思路方向是双指针,就一定是左右指针。用上左右指针,那么就要用数组或者list才获取链表每一个结点的值

删除链表的结点可以是任意位置的,只要有一种可能:删除一个结点恰好构成回文,那他就一定是回文链表

class ListNode {int val;ListNode next;ListNode() {}ListNode(int val) { this.val = val; }ListNode(int val, ListNode next) { this.val = val; this.next = next; }}class Solution {//本质还是判断是不是回文//删除链表的结点可以是任意位置的,只要有一种可能:删除一个结点恰好构成回文,那他就一定是回文链表//转化为:该链表是回文链表的话,那么删除的那一个结点在哪一个位置public boolean isPalindrome(ListNode head) {//因为链表的长度不固定,所以并不能使用数组存储结点的值List<Integer> list = new ArrayList<>();ListNode temp = head;while (temp != null) {list.add(temp.val);//获取每一个结点的值temp = temp.next;}//利用左右指针,来判断是否回文。int left = 0, right = list.size() - 1;//删除的结点在除了最左边和最右边的地方【中间部分】while (left < right) {//判断是否回文,如果不相等,就说明删除的结点就在附近if (list.get(left) != list.get(right)) {break;}left++;right--;}//该数如果本身就是回文,那么经历了while后退出循环,left与right重合,那么他一定是回文//如果该数本身是回文,那么删除某一个结点后,他一定还是回文[例:1221删除了2、121还是回文。]if (left == right) {return true;}//如果删除的结点是right位置的或者left位置的 能构成回文就返回trueif (Palindrome(list, left, right - 1) || Palindrome(list, left + 1, right)) {return true;}return false;}//判断是否是回文public boolean Palindrome(List<Integer> list, int left, int right) {while (left < right) {if (list.get(left) != list.get(right)) {return false;}left++;right--;}return true;}
}

49、字母异位词分组

判断字母异位词:法一、使用数组计数  法二、将字符串进行转成数组后排序
此题使用法二

由于互为字母异位词的两个字符串包含的字母相同,因此对两个字符串分别进行排序之后得到的字符串一定是相同的,故可以将排序之后的字符串作为哈希表的键。

class Solution {//判断字母异位词:法一、使用数组计数  法二、将字符串进行转成数组后排序//此题使用法二public List<List<String>> groupAnagrams(String[] strs) {Map<String, List<String>> map = new HashMap<>();for(String s:strs){char[] c=s.toCharArray();//将字符串转成数组后进行排序Arrays.sort(c);String ans=String.valueOf(c);//再转回去,变成字符串if(!map.containsKey(ans)){//不包含的话,创建一个list//相同异位词要放在同一个list里List<String>list=new ArrayList<>();map.put(ans,list);}//如果包含这个异位词,那么就找到异位词所在的value——即list,然后把排序前的单词加入到这个list里map.get(ans).add(s);//等于list.add(s) 将排序前的单词加到list里}return new ArrayList(map.values());//等同于 addAll ?}
}

1347、制造字母异位词的最小步骤数

题目要求将t变成s的字母异位词:

思路:先将t的字母出现次数存入数组中,因为要让t变成s的字母异位词,所以看看t缺少s的哪些字母及次数,故用t减去s,s中次数大于0的,就是t所缺少的。

class Solution {public int minSteps(String s, String t) {//将t变成s的字母异位词//先将t的字母出现次数存入数组中,因为要让t变成s的字母异位词,所以看看t缺少s的哪些字母及次数//用t减去s,s中次数大于0的,就是t所缺少的int[] nums = new int[26];for (char c : t.toCharArray()) {nums[c - 'a']++;}int ans = 0;for (char c : s.toCharArray()) {nums[c - 'a']--;}for (int i = 0; i < 26; i++) {if (nums[i] > 0) {ans += nums[i];}}return ans;}
}

709、转换成小写字母

强化复习:A-Z的ASCII是65~90 。a-z的ASCII是97~122

class Solution {public String toLowerCase(String s) {char[]c=s.toCharArray();for(int i=0;i<c.length;i++){if(c[i]>='A'&&c[i]<='Z'){c[i]+=32;}}return String.valueOf(c);}
}

Day55=====相关推荐

  1. day55 django 模型层,orm连表操作

    设计表 django之orm详解: https://www.cnblogs.com/komorebi/p/11551089.html 在django中设计表 1.先在navicat中建好一个库 2.更 ...

  2. js实现双击后网页自己主动跑-------Day55

    公司的界面设计环节总算是告一段落了,必需要承认的是,这段时间晚间的学习带给我非常多益处.在工作中偶尔的应用,效果出奇的好,收到领导和同事的一些小赞扬,表示非常欣慰,也长了点不少自信,尽管不理解,他们这 ...

  3. day55 linux 基础以及系统优化

    Linux系统基础优化及常用命令   Linux基础系统优化 引言没有,只有一张图. Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令 ...

  4. java day55【 Mybatis 连接池与事务深入 、 Mybatis 的动态 SQL 语句、 Mybatis 多表查询之一对多 、 Mybatis 多表查询之多对多】...

    第1章 Mybatis 连接池与事务深入 1.1 Mybatis 的连接池技术 1.1.1 Mybatis 连接池的分类 1.1.2 Mybatis 中数据源的配置 1.1.3 Mybatis 中 D ...

  5. day55 虚拟机 centos linux命令 搭建linux架构师必背命令

    英 /ˈlɪnəks; ˈlaɪnəks/ 美 /ˈlaɪnəks; ˈlɪnəks/ 查看进程 非网络进程(netstat) netstat -ntulp 网络服务 mobax是通过网络远程连接虚拟 ...

  6. day55判断子序列_不同的子序列

    力扣392.判断子序列 题目链接:https://leetcode.cn/problems/is-subsequence/ 思路 本题和最长公共子序列基本上类似,求得s和t的最长公共子序列,再判断最长 ...

  7. 厚积薄发打卡Day55 :[狂神]Redis详细教程(上)<从Nosql 概述到WSL安装Redis踩坑记录>

    视频教程:[狂神说Java]Redis最新超详细版教程通俗易懂 Nosql概述 时代背景: 1.单机数据库时代 90年代:一个基本的网站访问量一般不会太大,单个数据库完全足够! 那个时候,更多的去使用 ...

  8. 代码随想录训练营day55

    题目一:判断子序列 力扣题目链接 题目描述: 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符 ...

  9. 2022-8-31 第七小组 学习日记 (day55)JSP

    遇到出错自己解决:出错先看控制台,前端就f12看开发中工具,最后再查看路径 目录 JSP简介 面试题:JSP和servlet区别? JSP脚本片段: JSP表达式: JSP声明片段: JSP的指令标识 ...

最新文章

  1. 架构周报:微信后台系统的演进之路
  2. 网络嗅探与欺骗(FTP部分)
  3. matlab显示的图片,手动保存时四周有白边
  4. 产品需求文档中容易被忽视的10个细节
  5. android 添加随意拖动的桌面悬浮窗口,android 添加随意拖动的桌面悬浮窗口
  6. WP Super Cache+七牛云配置CDN加速,让你的网站秒开
  7. ios xcode如何在控制台打印frame
  8. php设计鸡兔同笼问题解法,鸡兔同笼问题口诀及解题方法(含经典应用题及答案)...
  9. Unicode与中文互转(反斜杠u(\u)开头的16进制Unicode编码转换成中文汉字
  10. lenovo服务器换系统重装系统_联想电脑重装系统详细步骤?
  11. EOJ 1224 简单迷宫问题 bfs
  12. 竞赛——【蓝桥杯】2022年11月第十四届蓝桥杯模拟赛第一期Python
  13. 网大网剧备案要避免的几大错误,内附最新备案流程!
  14. 机器学习中的范数理解(L0,L1,L2)
  15. 同卵双胞胎的2型糖尿病的易感性位点的综合表观基因分析
  16. matlab播放 视频帧,MATLAB读取视频并按帧保存
  17. Spring Boot国际化(i18n)
  18. 设计模式之模板方法模式(附应用举例实现)
  19. 2015年末小汇报-自制WIFI插座
  20. 通过指定考试成绩,判断学生等级

热门文章

  1. ubuntu 安装MPI
  2. 三菱Q PLC案例程序,三菱Q系列程序。 QD75MH总线伺服本案例是液晶电视导光板加工
  3. php 转为文本,php html转换成text文本函数
  4. 下载cab,sis,sisx等软件包出现乱码的解决方法
  5. 三码合一解决 PHP mysql 乱码
  6. Linux上基于 Golang 实现 KeyLogger 按键记录
  7. Verilog实现4-bit行波进位加法器和超前进位加法器
  8. jdbcUtils数据库操作工具类
  9. 社交电商成为下一个风口,社交电商怎么做?
  10. UNITY 虚拟相机 Cinemachine 第三人称视角 新输入系统 超简单