当前位置:网站首页>Swordsman Offer Special Assault Edition ---- Day 6
Swordsman Offer Special Assault Edition ---- Day 6
2022-07-31 05:32:00 【Milan's little red and black】

class Solution {
public String minWindow(String s, String t) {
int n = s.length(),m = t.length();
if(n<m) return "";
int[] cnt = new int[150];
int k = 0;
for(char c:t.toCharArray()){
if(++cnt[c]==1){
k++;
}
}
int l = 0,left = 0,right = 0;
for(int i = 0;i<s.length();i++){
char c = s.charAt(i);
if(--cnt[c]==0) k--;
if(k==0){
while(cnt[s.charAt(l)]<0){
++cnt[s.charAt(l++)];
}
if(left==right||right-left>i-l+1){
right = i+1;
left = l;
}
}
}
return s.substring(left,right);
}
}

class Solution {
public boolean isPalindrome(String s) {
StringBuilder str = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (Character.isLetterOrDigit(c)) {
str.append(Character.toLowerCase(c));
}
}
return str.toString().equals(new StringBuffer(str).reverse().toString());
}
}

class Solution {
public boolean validPalindrome(String s) {
for(int left = 0, right = s.length() - 1; left < right; left++, right--){
// 如果不相等,则分两种情况:删除左边的元素,或者右边的元素,再判断各自是否回文,满足一种即可.
if(s.charAt(left) != s.charAt(right))
return isPalindrome(s, left+1, right) || isPalindrome(s, left, right - 1);
}
return true;
}
// 判断字符串 s 的 [left, right] 是否回文
private boolean isPalindrome(String s, int left , int right){
while (left < right){
if (s.charAt(left++) != s.charAt(right--))
return false;
}
return true;
}
}

class Solution {
public int countSubstrings(String s) {
int n = s.length(), ans = 0;
for (int i = 0; i < 2 * n - 1; ++i) {
int l = i / 2, r = i / 2 + i % 2;
while (l >= 0 && r < n && s.charAt(l) == s.charAt(r)) {
--l;
++r;
++ans;
}
}
return ans;
}
}
边栏推荐
- Moment Pool Cloud quickly installs packages such as torch-sparse and torch-geometric
- 工作流编排引擎-Temporal
- C语言教程(二)-printf及c自带的数据类型
- MySQL-如何分库分表?一看就懂
- ABC D - Distinct Trio (Number of k-tuples
- Summary of MySQL common interview questions (recommended collection!!!)
- Workflow番外篇
- Shell重油常压塔模拟仿真与控制
- 剑指offer专项突击版 ---- 第1天
- Lock wait timeout exceeded解决方案
猜你喜欢

mysql5.7.35安装配置教程【超级详细安装教程】

Anaconda configure environment directives

目标检测学习笔记

Swordsman Offer Special Assault Edition --- Day 3

Unity Framework Design Series: How Unity Designs Network Frameworks

MySQL transaction isolation level, rounding

MySQL window function

Centos7 install mysql5.7

分布式事务——分布式事务简介、分布式事务框架 Seata(AT模式、Tcc模式、Tcc Vs AT)、分布式事务—MQ
【一起学Rust】Rust的Hello Rust详细解析
随机推荐
Redis的初识
【一起学Rust】Rust学习前准备——注释和格式化输出
With MVC, why DDD?
sql statement - how to query data in another table based on the data in one table
C语言实验四 循环结构程序设计(一)
剑指offer专项突击版 ---- 第1天
为什么要用Flink,怎么入门使用Flink?
Lock wait timeout exceeded解决方案
【mysql 提高查询效率】Mysql 数据库查询好慢问题解决
docker安装postgresSQL和设置自定义数据目录
TOGAF之架构标准规范(一)
Centos7 install mysql5.7 steps (graphical version)
SQL statement to range query time field
MySQL (updating)
torch.normal函数用法
Duplicate entry 'XXX' for key 'XXX.PRIMARY' solution.
DVWA installation tutorial (understand what you don't understand · in detail)
[Detailed explanation of ORACLE Explain]
Go中间件
Unity Framework Design Series: How Unity Designs Network Frameworks