char

LeetCode 力扣 76. 最小覆盖子串

自闭症网瘾萝莉.ら 提交于 2020-02-23 11:51:19
题目描述(困难难度) 给两个字符串,S 和 T,在 S 中找出包含 T 中所有字母的最短字符串,不考虑顺序。 解法一 滑动窗口 没有想出来,直接看来了 题解 ,这里总结一下。 用双指针 left 和 right 表示一个窗口。 right 向右移增大窗口,直到窗口包含了所有要求的字母。进行第二步。 记录此时的长度,left 向右移动,开始减少长度,每减少一次,就更新最小长度。直到当前窗口不包含所有字母,回到第 1 步。 S = "ADOBECODEBANC" , T = "ABC" A D O B E C O D E B A N C //l 和 r 初始化为 0 ^ l r A D O B E C O D E B A N C //向后移动 r,扩大窗口 ^ ^ l r A D O B E C O D E B A N C //向后移动 r,扩大窗口 ^ ^ l r A D O B E C O D E B A N C //向后移动 r,扩大窗口 ^ ^ l r A D O B E C O D E B A N C //向后移动 r,扩大窗口 ^ ^ l r //此时窗口中包含了所有字母(ABC),停止移动 r,记录此时的 l 和 r,然后开始移动 l A D O B E C O D E B A N C ^ ^ l r //向后移动 l,减小窗口,此时窗口中没有包含所有字母(ABC)

java 数据类型

你离开我真会死。 提交于 2020-02-23 05:51:59
java是一个静态类型的语言,所有的数据类型都是有类型的(强类型的语言),当一个变量名指定类型后不可再改变变量类型 数据类型包括基本数据类型和引用数据类型(除基本数据类型外的其他类型都是引用数据类型) 基本数据类型不是面向对象的,但是提供了对基本数据类型的包装类,提供面向对象接口 基本数据类型包括整型,浮点型,布尔型和字符型 整型包括byte,short,int,long byte类型: 1个字节(8个byte),取值范围, 在网络,文件IO流中常使用byte类型, 当byte类型的值进行算术运算时,会自动提升到int类型,和浮点类型进行算术运算时也会提升 short类型: 2个字节(16个byte)取值范围 当byte类型的值进行算术运算时,会自动提升到int类型,和浮点类型进行算术运算时也会提升 int: 4个字节(32个byte),取值范围 long: 8个字节(64个byte),取值范围 浮点型 float:单精度浮点类型,后面加L或l,默认可以不加 double:双精度浮点类型,后面加F或者f 如果不加默认为float 布尔型 true,false 字符型 char,单个字符,当进行算术运算时会使用对应的ASCII的值进行运算 'a' 对应ASCII值97 'A' 对应ASCII值65 自动类型转换 从小到大可以完成自动类型转换,不会丢失精度,转换顺序byte <

java八大基本数据类型

一个人想着一个人 提交于 2020-02-23 05:43:51
java中八大数据类型的储存空间以及使用场景表示如下 )1.int:4字节,可以表示的数为-2^31 - 2^31-1。整数的默认类型。封装类也如此 。整数相除的时候,会舍弃小数部分。结果也是整数,例如 5/3 = 1;且整数在运算的时候,要注意内存溢出的问题。 )2.long:8字节,可以表示的数为 -2^63 -- 2^63-1。常用来表示int表示不了的整数类型。例如System.currentTimeMills()方法,返回的是1970.1.1到今天所经历的毫秒数。这个数字就是int所不能表达的,必须用long来表达。如果long类型还不能表达你所要的整数, 推荐用bigInteger,可以表示任意的整数 long a = 20;是可以的,但是如要使用他的封装类,那么数字后面必须加L/l 例如 Long a = 20L; )3.float:4字节,由于浮点数的默认类型是double,因此想使用float的时候就要在浮点数后面加f/F。整数后面可以不用加,因为这是强制转化。在封装类Float中,无论是整数还是浮点数,后面都要加f/F。 )4.double:8字节:常用来表示浮点数。默认的浮点数数据类型(Double中也如此)。且在计算机二进制中,无法正确的表示十分之一。所以会出现舍入误差。 如果double类也无法达到你所要表示的浮点数,推荐使用BigDecimal来表示

c# form-data上传图片流到远程服务器

試著忘記壹切 提交于 2020-02-23 01:32:59
先贴代码,后面做一些简单说明 public static string sendPostHttpRequest_2(string url, byte[] postBytes, string contentType= "multipart/form-data; boundary=--------------------------71b23e4066ed") { string delimiter = "--------------------------71b23e4066ed"; string eol = Environment.NewLine; string head = delimiter + eol + "Content-Disposition: form-data;piclen=" + postBytes.Length + eol + "Content-Type:image/jpeg" + "\r\n\r\n"; string foot = "\r\n" + delimiter + "--\r\n"; byte[] h_c = new ASCIIEncoding().GetBytes(head); byte[] f_c = new ASCIIEncoding().GetBytes(foot); WebRequest request = (WebRequest

31.Linux-分析并制作环形缓冲区

给你一囗甜甜゛ 提交于 2020-02-22 23:43:29
1.环形缓冲区log_buf[]又是存在内核的哪个文件呢?   位于/proc/kmsg里,所以除了dmesg命令查看,也可以使用cat /proc/kmsg来查看 2.但是,dmesg命令和cat /proc/kmsg有所不同 2.1 dmesg命令   每次使用,都会打印出环形缓冲区的所有信息 2.2 cat /proc/kmsg   只会打印出每次新的环形缓冲区的信息   比如,第一次使用cat /proc/kmsg,会打印出内核启动的所有信息   第二次使用cat /proc/kmsg,就不会出现之前打印的信息,只打印继上次使用cat /proc/kmsg之后的新的信息,比如下图所示: 3.接下来我们便进入内核,找/proc/kmsg文件在哪生成的   搜索"kmsg",找到位于fs\proc\proc_misc.c 文件的proc_misc_init()函数中,   该函数主要用来生成登记的设备文件,具体代码如下所示: const struct file_operations proc_kmsg_operations = { . read = kmsg_read , //读函数 . poll = kmsg_poll , . open = kmsg_open , . release = kmsg_release , } ; void __init proc_misc

数据库实验报告

人走茶凉 提交于 2020-02-22 22:25:05
实验一:数据定义/数据操纵语言 [ 实验日期 ] 年 月 日 [ 实验目的 ] 通过实验熟悉ORACLE上机环境;熟练掌握和使用DDL语言,建立、修改和删除数据库表;熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。 [ 实验内容 ] (1)(建立数据库表) 建立教学数据库的四个数据库表,并按要求创建完整性约束。 –1.学生情况表 CREATE TABLE Student (SNO CHAR(5) PRIMARY KEY, SNAME VARCHAR2(12) NOT NULL, SDEPT CHAR(2) NOT NULL, SCLASS CHAR(2) NOT NULL, SSEX CHAR(3), SAGE NUMBER(2) ); INSERT INTO STUDENT VALUES('96001','马小燕','CS','01','女',21); INSERT INTO STUDENT VALUES('96002','黎明','CS','01','男',18); INSERT INTO STUDENT VALUES('96003','刘东明','MA','01','男',18); INSERT INTO STUDENT VALUES('96004','赵志勇','IS','02','男',20); INSERT INTO STUDENT VALUES('97001

将中缀表达式转化成后缀表达式来计算值

假如想象 提交于 2020-02-22 18:04:46
题目很简单,就是给出一个表达式(例如2*(3+5)+6),然后我们得出他的值。 未接触这个方法前,我是用了一种很复杂的方法(爆肝警告) 将中缀表达式(就是我们要求的表达式)转化成后缀表达式来解决就会比较简单。 对于中缀表达式和后缀表达式的概念这里就不说了,只将方法呈现出来。 例如一个中缀表达式:A+(B-C/D)✖E,是如何将其转化成后缀表达式:ABCD/-E✖+的?(忽略乘号的特殊) 直接介绍下方法,对这个中缀表达式依次进行扫描,如果是 数字 ,则直接存入放后缀表达式的数组中;如果是 符号 ,先与存符号的栈顶符号进行比较,若 优先级较大 则进栈,若 小于或等于 则栈顶出栈到后缀表达式的数组,此字符继续与现在的栈顶比较,进行循环操作;如果读到 左括号 ,则左括号直接进栈;如果读到 右括号 ,则符号依次退栈直到遇到左括号,左括号哪项也退栈,但不存入后缀表达式。 对后缀表达式计算就是依次扫描,扫描到符号,则符号前的两个数进行符号运算,直到扫描完。 接下来直接上代码 # include <stdio.h> # include <string.h> # define maxn 1005000 char s [ maxn ] ; //存中缀表达式 char s1 [ maxn ] ; //存后缀表达式的符号 char s2 [ maxn ] ; //存符号的栈 int a [ maxn ]

-1和255有什么区别?

北城余情 提交于 2020-02-22 15:02:21
待到秋来九月八,我花开尽百花杀 -1和255的区别 -1和255的区别 了解了负数在计算机内存中的储存方式,也知道了计算机如何计算这些数,那么就生成了另外一个问题,-1和255有什么区别,同理还有许多负数与正整数发生了重叠的问题,就像是-1和255的在内存中的表示都是1111 1111,计算机是如何区分这些的呢? 参考: https://blog.csdn.net/qq_40893595/article/details/104439660 比如 1111 1111 + 0000 0010 计算机算出 进位=1,值 = 0000 0001 编译器这时就要分辨,如果输出要求是有符号输出的,则输出1。如果输出要求无符号输出就按255+2输出,但要知道char最高位为8比特,最多表示为255,再+2就溢出了,输出表示仍然是1。 (要解释一下,char进入CPU时要进行整型提升,255和-1实际存入的是 1111 1111 1111 1111 1111 1111 1111 1111,所以如果直接无符号输出的话可能是4294967295,同样这也是整形的最大表示数,再+2,就会溢出,即便是强转int型也要输出的是1。参考: https://blog.csdn.net/qq_40893595/article/details/104441826 ) 我们可以实验一下: # include

Python使用Ctypes与C/C++ DLL文件通信过程介绍及实例分析

坚强是说给别人听的谎言 提交于 2020-02-22 12:59:40
项目中可能会经常用到第三方库,主要是出于程序效率考虑和节约开发时间避免重复造轮子。无论第三方库开源与否,编程语言是否与当前项目一致,我们最终的目的是在当前编程环境中调用库中的方法并得到结果或者借助库中的模块实现某种功能。这个过程会牵涉到很多东西,本篇文章将简要的介绍一下该过程的一些问题。 1.背景 多语言混合编程可以弥补某一种编程语言在性能表现或者是功能等方面的不足。虽然所有的高级语言都会最终转换成汇编指令或者最底层的机器指令,但是语言本身之间的千差万别很难一言以蔽之,这对不同语言之间相互通信造成很大的障碍。 工作中需要用python完成一项功能,但是所有现有的python库都不满足需求。最终找到了一个开源的C++库,编译得到动态库被python调用才完成工作需求。虽然整个过程耗时不多,但是期间碰到很多的问题,而且这些问题都很有思考价值。 除了这篇博文外,后续还将有一到两篇文章通过具体的实例讲解一下跨语言调用。 2.问题思考 在进行具体的介绍之前,先来思考一下调用外部库或者自己实现库所牵涉的一些一般性的问题。这样或许实际中操作使用时会理解的更加深刻,遇到问题也能够逐项的排查。 如果用C语言写的库调用了Linux的system call,纵使C本身是跨平台的,那么该库也不可能在Window上被使用,即便我们能拿到源码。这里有两个核心问题: 是否开源 是否跨平台 如果库的实现不依赖平台

Java中的字面量

南楼画角 提交于 2020-02-22 12:19:39
Literals in Java – Integral, Floating-Point, Char, String, Boolean BY DATAFLAIR TEAM · UPDATED · AUGUST 29, 2019 Literals are number, text, or anything that represent a value. In other words, Literals in Java are the constant values assigned to the variable. It is also called a constant. For example, int x = 100; So, 100 is literal. There are 5 types of Literals can be seen in Java. But before we start the discussion, you should revise the concept of Variables in Java . Types of Literals in Java 转存失败 重新上传 取消 1. Integral Literals in Java We can specify the integer literals in 4 different ways –