通配符

@bzoj - 4259@ 残缺的字符串

浪尽此生 提交于 2020-01-20 20:23:21
目录 @description@ @solution@ @accepted code@ @details@ @description@ 很久很久以前,在你刚刚学习字符串匹配的时候,有两个仅包含小写字母的字符串A和B,其中A串长度为m,B串长度为n。可当你现在再次碰到这两个串时,这两个串已经老化了,每个串都有不同程度的残缺。 你想对这两个串重新进行匹配,其中A为模板串,那么现在问题来了,请回答,对于B的每一个位置i,从这个位置开始连续m个字符形成的子串是否可能与A串完全匹配? 原题链接。 @solution@ 据说已经成了套路题。 以下内容中假定以 0 为字符串下标起点。 考虑没有通配符的情况,B 中第 j 个位置开头的串能否与 A 匹配。实际上是计算式子 \(\sum_{i=0}^{m-1}[A_i\not = B_{i+j}]\) 是否为 0。 注意到这个注意匹配的形式很像卷积。不过别急,我们先把其拆成数值计算的形式:上式为 0 等价于 \(\sum_{i=0}^{m-1}(A_i - B_{i+j})^2\) 。 由完全平方的非负性可以得到等价性。 有通配符怎么办?A, B 其中一个为通配符,构造出来的式子就应该等于 0。 不妨令通配符等于 0,则计算 \(\sum_{i=0}^{m-1}(A_i - B_{i+j})^2\times A_i \times B_{i+j}\)

java泛型 T 和 通配符 ?

无人久伴 提交于 2020-01-20 19:26:22
java泛型 T 和 通配符 ? 一 泛型的基本用法 定义 运行原理 二 PECS法则 三 T 和 ? 的更多场景 一 泛型的基本用法 从java5开始,java开始引入泛型。在没有泛型之前,从集合中读取到的每一个对象都必须进行转换,如果有人不小心插入了类型错误的对象,在运行时的转换处理就会出错。 有了泛型之后,你可以告诉编译器每个集合接受哪些对象类型。编译器自动为你的插入进行转换,饼子啊编译时告知是否插入了类型错误的对象。 定义 · 1 定义在类中,紧跟在类名后面 public class TestClassDefine < T , S extends T > { } 定义泛型 T, S, 且S 继承 T · 2 定义在方法装饰符后面,紧跟修饰符后面(public) public < T , S extends T > T testGenericMethodDefine ( T t , S s ) { } 定义泛型 T, S, 且S 继承 T 运行原理 java泛型是通过擦拭来运行的,即在代码运行过程中不会生效,只是编译期生效。 List < String > stringArrayList = new ArrayList < String > ( ) ; List < Integer > integerArrayList = new ArrayList < Integer >

Java泛型10问

梦想的初衷 提交于 2020-01-20 03:09:00
Java泛型 1. Java中的泛型是什么 ? 使用泛型的好处是什么? 2. Java的泛型是如何工作的 ? 什么是类型擦除 ? 3. 什么是泛型中的限定通配符和非限定通配符 ? 4. List<? extends T>和List <? super T>之间有什么区别 ? 5. 如何编写一个泛型方法,让它能接受泛型参数并返回泛型类型? 6. Java中如何使用泛型编写带有参数的类? 7. 编写一段泛型程序来实现LRU缓存? 8. 你可以把List传递给一个接受List参数的方法吗? 9. Array中可以用泛型吗? 10. 如何阻止Java中的类型未检查的警告? 1. Java中的泛型是什么 ? 使用泛型的好处是什么? 这是在各种Java泛型面试中,一开场你就会被问到的问题中的一个,主要集中在初级和中级面试中。那些拥有Java1.4或更早版本的开发背景的人都知道,在集合中存储对象并在使用前进行类型转换是多么的不方便。泛型防止了那种情况的发生。它提供了编译期的类型安全,确保你只能把正确类型的对象放入集合中,避免了在运行时出现ClassCastException。 2. Java的泛型是如何工作的 ? 什么是类型擦除 ? 这是一道更好的泛型面试题。泛型是通过类型擦除来实现的,编译器在编译时擦除了所有类型相关的信息,所以在运行时不存在任何类型相关的信息

06 Spring Boot 整合RabbitMQ

六眼飞鱼酱① 提交于 2020-01-19 04:50:43
6. Spring 整合RabbitMQ 6.1. 搭建生产者工程 6.1.1. 创建工程 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nRET1n6r-1578323120296)(F:\learning\javaee\笔记\第五阶段\04RabbitMQ\06 Spring Boot 整合RabbitMQ\img\1565149342994.png)] [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-egWNK3ug-1578323120297)(F:\learning\javaee\笔记\第五阶段\04RabbitMQ\06 Spring Boot 整合RabbitMQ\img\1565144326498.png)] 6.1.2. 添加依赖 修改pom.xml文件内容为如下: <?xml version="1.0" encoding="UTF-8"?> < project xmlns = " http://maven.apache.org/POM/4.0.0 " xmlns: xsi = " http://www.w3.org/2001/XMLSchema-instance " xsi: schemaLocation = " http://maven.apache.org/POM/4.0.0 http:/

nginx常用配置2

女生的网名这么多〃 提交于 2020-01-17 07:51:00
## 一、Nginx中虚拟主机配置 ### 1、基于域名的虚拟主机配置 1、修改宿主机的hosts文件(系统盘/windows/system32/driver/etc/HOSTS) ​ linux : vim /etc/hosts 格式: ip地址 域名 eg: 192.168.111.152 www.xiong.com 2、在nginx.conf文件中配置server段 ``` server { listen 80; server_name www.gerry.com; # 域名区分 location / { root html/gerry; index index.html; } } server { listen 80; server_name www.rm.com; # 域名区分 location / { root html/rm; index index.html; } } ``` ### 2、基于端口号的虚拟主机配置 1、在nginx.conf文件中配置server段 ``` server { listen 80; # 端口区分 server_name www.xiong.com; location / { root html/xiong; index index.html; } } server { listen 8080; # 端口区分 server_name

唬人的Java泛型并不难

╄→гoц情女王★ 提交于 2020-01-16 13:36:42
泛型 public interface Foo<E> {}public interface Bar<T> {}public interface Zar<?> {} 上面的代码有什么区别? 泛型初探 1、为何引入泛型? Java 泛型也是一种语法糖,使用泛型可以在代码编译阶段完成类型的转换,避免代码在运行时强制转换而出现ClassCastException的异常。 网络搜索出来一大堆的名称解释,我们先看英文 Generic type ,从英文大概也能明白,Generic 这里可以理解为普通的,一般的,或者我们可以说通用的。 其实可以理解为Java中的一种类型,通用类型。 Java从1.5的版本就开始支持泛型,不过很多小伙伴对泛型还是模凌两可,今天大概讲讲泛型,基础好的小伙伴,就当复习复习。 在1.5版本以前 public static void main(String[] args){ List list = new ArrayList(); list.add("兔子托尼啊"); list.add(1234); //正常运行 System.out.println((String)list.get(0)); //❌运行时报错 System.out.println((String)list.get(1));} 从上面的代码可以看出了,第一句打印不报错,第二句打印会报错的。

MySQL快速回顾:高级查询操作

牧云@^-^@ 提交于 2020-01-15 11:32:55
8.1 排序数据 检索出的数据并不是以纯粹的随机顺序显示的。如果不排序,数据一般将以它在底层表中出现的顺序显示。这可以是数据最初添加到表中的顺序。但是,如果数据后来进行过更新或删除,则此顺序将会受到MySQL重用回收存储空间的影响。因此,如果不明确控制的话,不能依赖该排序顺序。 关系数据库设计理论认为,如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有意义。 子句的解释: 一个子句通常由一个关键字和所提供的数据组成 。SQL语句由子句构成,有些子句是必需的,而有些是可选的。 为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY子句。ORDER BY子句取一个或多个列的名字,据此对输出进行排序。排序顺序有两种:升序(ASC关键字)和降序(DESC关键字), 格式: # 升序(默认不写就是升序) SELECT field1,field2,... FROM <table_name> ORDER BY field1,field2,...; SELECT field1,field2,... FROM <table_name> ORDER BY field1,field2,... ; # 降序 SELECT field1,field2,... FROM <table_name> ORDER BY field1,field2,... DESC; # 对field1降序

正则表达式的基本用法

十年热恋 提交于 2020-01-14 06:48:42
本文转载自: https://www.cnblogs.com/catch/archive/2013/05/25/3098585.html 作者:catch 转载请注明该声明。 Perl 有很多其它语言所没有的特性,这其中对正则表达式( regular expression )的强大支持是它最为突出的一个亮点。正则表达式使得 perl 在处理文本时具有非常强大的优势:快速,灵活而且很可靠,甚至可以说,强大文本处理能力,是 perl 在众多语言中最为闪耀的一个特点。 因此学习 perl 的过程,必然也是学习正则表达式的过程,这或许多少给 perl 的学习增加了些少的负担,但好在正则表达式并不是 perl 所独有的, 它是一门使用非常广泛的语言,在很多工具及其它编程语言中都有广泛的支持,比如:grep,awk,sed,vi 等。 它是如此的常见,以致于编程人员在很多场合都无可避免的要与之打交道,因此掌握好正则表达的好处是非常明显的,好在它的语法也很简单,学习起来也不算太难。 在 Perl 或其它一些语言及工具中,正则表达式通常也会叫为“模式"(pattern),正则表达式本质上来说是一个字符串模板,用来确认某个字符串是否符合这个模板的格式,任何一个字符串,要么符合这个模板,要么不符合这个模板。具体到 在Perl中,正则表达式是用"/"围起来的,比如: ($string =~ /

leetcode 44 通配符匹配 (贪心||DP)

▼魔方 西西 提交于 2020-01-13 23:02:55
https://leetcode-cn.com/problems/wildcard-matching/submissions/ 给定一个字符串 (s) 和一个字符模式 (p) ,实现一个支持 '?' 和 '*' 的通配符匹配。 '?' 可以匹配任何单个字符。 '*' 可以匹配任意字符串(包括空字符串)。 两个字符串完全匹配才算匹配成功。 说明: s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。 示例 1: 输入: s = "aa" p = "a" 输出: false 解释: "a" 无法匹配 "aa" 整个字符串。 示例 2: 输入: s = "aa" p = "*" 输出: true 解释: '*' 可以匹配任意字符串。 示例 3: 输入: s = "cb" p = "?a" 输出: false 解释: '?' 可以匹配 'c', 但第二个 'a' 无法匹配 'b'。 示例 4: 输入: s = "adceb" p = "*a*b" 输出: true 解释: 第一个 '*' 可以匹配空字符串, 第二个 '*' 可以匹配字符串 "dce". 示例 5: 输入: s = "acdcb" p = "a*c?b" 输入: false 来源:力扣(LeetCode) 链接:https://leetcode-cn.com

java 泛型详解

◇◆丶佛笑我妖孽 提交于 2020-01-13 18:30:37
https://blog.csdn.net/s10461/article/details/53941091 对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。 本文参考java 泛型详解、Java中的泛型方法、 java泛型详解 1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。 什么是泛型?为什么要使用泛型? 泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。 泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。 2. 一个栗子一个被举了无数次的例子: List arrayList = new ArrayList();arrayList.add("aaaa");arrayList.add(100); for(int i = 0; i< arrayList.size();i