Day55=====
银联-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=====相关推荐
- day55 django 模型层,orm连表操作
设计表 django之orm详解: https://www.cnblogs.com/komorebi/p/11551089.html 在django中设计表 1.先在navicat中建好一个库 2.更 ...
- js实现双击后网页自己主动跑-------Day55
公司的界面设计环节总算是告一段落了,必需要承认的是,这段时间晚间的学习带给我非常多益处.在工作中偶尔的应用,效果出奇的好,收到领导和同事的一些小赞扬,表示非常欣慰,也长了点不少自信,尽管不理解,他们这 ...
- day55 linux 基础以及系统优化
Linux系统基础优化及常用命令 Linux基础系统优化 引言没有,只有一张图. Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令 ...
- 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 ...
- day55 虚拟机 centos linux命令 搭建linux架构师必背命令
英 /ˈlɪnəks; ˈlaɪnəks/ 美 /ˈlaɪnəks; ˈlɪnəks/ 查看进程 非网络进程(netstat) netstat -ntulp 网络服务 mobax是通过网络远程连接虚拟 ...
- day55判断子序列_不同的子序列
力扣392.判断子序列 题目链接:https://leetcode.cn/problems/is-subsequence/ 思路 本题和最长公共子序列基本上类似,求得s和t的最长公共子序列,再判断最长 ...
- 厚积薄发打卡Day55 :[狂神]Redis详细教程(上)<从Nosql 概述到WSL安装Redis踩坑记录>
视频教程:[狂神说Java]Redis最新超详细版教程通俗易懂 Nosql概述 时代背景: 1.单机数据库时代 90年代:一个基本的网站访问量一般不会太大,单个数据库完全足够! 那个时候,更多的去使用 ...
- 代码随想录训练营day55
题目一:判断子序列 力扣题目链接 题目描述: 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符 ...
- 2022-8-31 第七小组 学习日记 (day55)JSP
遇到出错自己解决:出错先看控制台,前端就f12看开发中工具,最后再查看路径 目录 JSP简介 面试题:JSP和servlet区别? JSP脚本片段: JSP表达式: JSP声明片段: JSP的指令标识 ...
最新文章
- Java项目:疫情人员流动管理系统(java+JSP+SSM+Springboot+maven+Mysql)
- 详解编辑距离(Edit Distance)及其代码实现
- android:showAsAction=never报错
- LINQ to SQL语句(4)之Join
- linux-压缩和解压类
- Java LocalDate类| lengthOfYear()方法和示例
- 归并排序——java
- zabbix源分支---zabbix-rpm
- violin 结构介绍
- 编程基础(四)——cache之一
- T61|NV显卡门|根据售后维修部数据显示爆发期来临|预防显卡门|解决显卡门
- labelme转VOC2007格式
- Kali Linux 破解无线网密码
- Lattice PCIe 学习 1
- 业务侧-到底应该怎么做A/Btest
- ibm aix_IBM AIX设备驱动程序开发
- ds12c887程序C语言,时钟芯片DS12C887使用说明详解.doc
- 赴北京美国大使馆L1签证面签记
- 浪迹天涯king教你用elementui做复杂的表格,去处理报表数据(合并表头,合并表体行和列)
- Java是什么?Java有哪些特点?