银联-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. Java项目:疫情人员流动管理系统(java+JSP+SSM+Springboot+maven+Mysql)
  2. 详解编辑距离(Edit Distance)及其代码实现
  3. android:showAsAction=never报错
  4. LINQ to SQL语句(4)之Join
  5. linux-压缩和解压类
  6. Java LocalDate类| lengthOfYear()方法和示例
  7. 归并排序——java
  8. zabbix源分支---zabbix-rpm
  9. violin 结构介绍
  10. 编程基础(四)——cache之一
  11. T61|NV显卡门|根据售后维修部数据显示爆发期来临|预防显卡门|解决显卡门
  12. labelme转VOC2007格式
  13. Kali Linux 破解无线网密码
  14. Lattice PCIe 学习 1
  15. 业务侧-到底应该怎么做A/Btest
  16. ibm aix_IBM AIX设备驱动程序开发
  17. ds12c887程序C语言,时钟芯片DS12C887使用说明详解.doc
  18. 赴北京美国大使馆L1签证面签记
  19. 浪迹天涯king教你用elementui做复杂的表格,去处理报表数据(合并表头,合并表体行和列)
  20. Java是什么?Java有哪些特点?

热门文章

  1. 解决win7 x64系统下游戏日文乱码(crossdays)
  2. 从苏宁电器到卡巴斯基第26篇:难忘的三年硕士时光 IV
  3. qemu对acpi的模拟
  4. 二本 计算机专业2017分数线,2017全国大学二本录取分数线一键查询软件
  5. C#中错误:线程间操作无效,从不是创建控件的线程访问它。
  6. JDK8新特性(五):JDK8时间日期API
  7. kaggle竞赛 | Quora Question Pairs | 判断相似的Question
  8. ucinet网络分析教程
  9. FTP登录特别慢的解决方式
  10. java实现斗地主(一)