next

Chrome 调试技巧

霸气de小男生 提交于 2020-11-03 05:40:55
源自:https://segmentfault.com/a/1190000016256731 alert 这个不用多说了,不言自明。 console 基本输出 想必大家都在用 console.log 在控制台输出点东西,其实console还有其它的方法: console.log("打印字符串"); // 在控制台打印自定义字符串 console.error("我是个错误"); // 在控制台打印自定义错误信息 console.info("我是个信息"); // 在控制台打印自定义信息 console.warn("我是个警告"); // 在控制台打印自定义警告信息 console.debug("我是个调试"); // 在控制台打印自定义调试信息 console.clear(); // 清空控制台(这个下方截图中没有) 注意上面输出的error和throw出的error不一样,前者只是输出错误信息,无法捕获,不会冒泡,更不会中止程序运行。 格式化输出 除此以外,console还支持自定义样式和类似c语言的printf形式: console.log("%s年", 2016); // %s表示字符串 console.log("%d年%d月", 2016, 11); // %d表示整数 console.log("%f", 3.1415926); // %f小数 console.log("%o

2018ACM-ICPC南京区域赛M---Mediocre String Problem【exKMP】【Manacher】

杀马特。学长 韩版系。学妹 提交于 2020-11-03 05:39:33
这题就单独写个题解吧。想了两天了,刚刚问了一个大佬思路基本上有了。 题意: 一个串$S$,一个串$T$,在$S$中选一段子串$S[i,j]$,在$T$中选一段前缀$T[1,k]$使得$S[i,j]T[1,k]$拼起来得到的字符串是回文,并且$S$的这个串长度大于$T$的这个。问有多少这样的三元组$(i,j,k)$ 思路: 首先我们可以知道我们要找的其实就是这样三个串,$a,b,c$。其中$a$和$c$合起来是$S$中连续的一段子串,$b$在$T$中且$a$和$b$是对称的,$c$一定要是一个回文,且长度至少是$1$。 第一步比较简单我们可以用manacher求出$S$中的每一个回文。 比如上面图中的下面话的是一个以$i$为中心的回文,假设他的半径是$p$。 那么$i-p$到$i-1$都是满足条件的$a$串的起始点,因为他们后面都接着一段回文。 那么我们把$S$倒过来得到$S'$,拿$S'$和$T$跑exkmp,就可以得到$S'$的每一个后缀和$T$最长公共前缀。 这表示有$ex[i]$个串可以作为$a$串的选择。 答案应该是$a$串的选择个数$*c$串的选择个数 $c$串的选择个数怎么找呢,其实他就是以$i$为开头的回文串的个数。 用manacher加差分可以处理。具体的可以看hdu5157 https://www.cnblogs.com/wyboooo/p/9988397

[gym101981M][2018ICPC南京M题]Mediocre String Problem

让人想犯罪 __ 提交于 2020-11-03 05:30:15
题目链接 题目大意是问在$S$串中找区间$[i,j]$,在$T$串中找位置$k$,使得$S[i,j]$和$T[1,k]$可以组成回文串,并且$j-i+1>k$,求这样的三元组$(i,j,k)$的个数。 一开始有点懵,但是仔细一想,因为$j-i+1>k$,所以$S[i,j]$中一定包含了回文串后半段的一部分,即$S[i,j]$中一定有后缀是回文串。 如果回文串是$S[x,j]$,则剩余的$S[i,x-1]$与$T[1,k]$应该也能组成回文串。如果将串$S$倒置,则串$S^{'}$上的原$S[i,x-1]$位置与$T[1,k]$应该相同。 所以解题方式应该比较明了,将串$S$倒置,然后求扩展$kmp$,得到串$S^{'}$每个后缀与串$T$的最长公共前缀。然后对串$S^{'}$构建回文自动机。 可以得到串$S^{'}$每个位置作为回文子串的结尾时的回文串个数。然后枚举串$S^{'}$每个位置$i$,以当前位置作为上文中的$x$,然后计算当前位置对答案的贡献。 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int maxn = 1e6 + 100 ; 5 int Next[maxn]; 6 int Ex[maxn]; 7 void getN( char * s1) { /

JDBC-文档

一世执手 提交于 2020-11-03 03:29:50
第 1章概述 在 Java中,数据库存取技术可分为如下几类: l JDBC直接访问数据库 l JDO技术(Java Data Object) l 第三方 O/R工具,如Hibernate, Mybatis 等 JDBC是java访问数据库的基石,JDO, Hibernate等只是更好的封装了JDBC。 1 、什么是 JDBC JDBC(是一个 独立于特定数据库管理系统( DBMS)、通用的SQL数据库存取和操作的公共接口 (一组 API),定义了用来访问数据库的标准Java类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源 JDBC为访问不同的数据库提供了一种 统一的途径 ,为开发者屏蔽了一些细节问题。 JDBC的目标是使Java程序员使用JDBC可以连接任何 提供了 JDBC驱动程序 的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。 如果没有 JDBC,那么Java程序访问数据库时是这样的: 改装: 实际上: 结论: JDBC是SUN公司提供一套用于数据库操作的接口API,Java程序员只需要面向这套接口编程即可。 不同的数据库厂商,需要针对这套接口,提供不同实现。不同的实现的集合,即为不同数据库的驱动。 2、 JDBC API JDBC API是一系列的接口,它统一和规范了应用程序与数据库的连接、执行SQL语句

第四阶段组队训练赛第四场

∥☆過路亽.° 提交于 2020-11-03 02:27:08
题目来源:NAIPC2018 D: Missing Gnomes 题目描述 A family of n gnomes likes to line up for a group picture. Each gnome can be uniquely identified by a number 1..n written on their hat. Suppose there are 5 gnomes. The gnomes could line up like so: 1, 3, 4, 2, 5. Now, an evil magician will remove some of the gnomes from the lineup and wipe your memory of the order of the gnomes. The result is a subsequence, perhaps like so: 1, 4, 2. He then tells you that if you ordered all permutations of 1..n in lexicographical order, the original sequence of gnomes is the first such permutation which contains the

LeetCode:奇偶链表【328】

半腔热情 提交于 2020-11-02 19:41:58
LeetCode:奇偶链表【328】 题目描述 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的 奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性 。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。 示例 1: 输入: 1->2->3->4->5->NULL 输出: 1->3->5->2->4->NULL 示例 2: 输入: 2->1->3->5->6->4->7->NULL 输出: 2->3->6->7->1->5->4->NULL 说明: 应当保持奇数节点和偶数节点的相对顺序。 链表的第一个节点视为奇数节点,第二个节点视为偶数节点,以此类推。 题目分析   我的想法是这样的,将 原链表拆分成奇偶链表然后在合并 。   这样的话涉及几个步骤:   1.两个链表的初始节点,如STEP0所示。   2.odd跳到even的下一个,even再跳到odd的下一个,然后将even串到evenHead上,如此往复(请看STEP1、STEP2)。   3.最后,将odd的下一个串到evenHead,实现链接。    Java题解 /** * Definition for singly-linked list. * public class ListNode { * int val; *

328. 奇偶链表

耗尽温柔 提交于 2020-11-02 18:19:29
328. 奇偶链表 题意 奇数的链表结点插在偶数的链表结点前面; 解题思路 维护两条链表,分别记录下奇数和偶数的链表结点,最后将偶数链表的起始结点连接到奇数链表的末尾结点后面; 实现 class Solution ( object ): def oddEvenList ( self , head ): """ :type head: ListNode :rtype: ListNode """ if not head : return head odd , even = head , head . next even_head = even # 设置两条链表,分别记录奇数和偶数的链表结点 while even and even . next : odd . next = odd . next . next even . next = even . next . next odd = odd . next even = even . next odd . next = even_head return head 来源: oschina 链接: https://my.oschina.net/u/4413763/blog/3604572

有关链表的小技巧,我都给你总结好了

帅比萌擦擦* 提交于 2020-11-02 16:02:35
链表 链表是数据结构里一个很基础但是又很爱考的线性结构,链表的操作相对来说比较简单,但是非常适合考察面试者写代码的能力,以及对 corner case 的处理,还有指针的应用很容易引起 NPE (null pointer exception)。综合以上原因,链表在面试中很重要。 提到链表就不得不提数组,它和数组可以说是数据结构的基础,那么它们最主要的区别在于: 数组在物理内存上必须是连续的 链表在物理内存上不需要连续,通过指针连接 所以数组最好的性质就是可以随机访问 random access,有了 index,可以 O(1) 的时间访问到元素。 而链表因为不连续,所以无法 O(1) 的时间定位任意一个元素的位置,那么就只能从头开始遍历。 这就造成了它们之间增删改查上效率的不同。 除此之外,链表本身的结构与数组也是完全不同的。 LinkedList 是由 ListNode 来实现的: class ListNode { int value; ListNode next; } 结构上长这样: 这是单向链表,那还有的链表是双向链表,也就是还有一个 previous pointer 指向当前 node 的前一个 node: class ListNode { int value; ListNode next; ListNode prev; } 其实链表相关的题目没有很难的,套路也就这么几个

328. 奇偶链表

☆樱花仙子☆ 提交于 2020-11-02 15:59:58
给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。 示例 1: 输入: 1->2->3->4->5->NULL 输出: 1->3->5->2->4->NULL 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/odd-even-linked-list 1 public class OddEvenLinkedList { 2 static class ListNode { 3 int val; 4 ListNode next; 5 ListNode( int x) { 6 val = x; 7 } 8 } 9 public ListNode oddEvenList1(ListNode head) { 10 ListNode cur = head.next; 11 ListNode curOdd = head; 12 while (cur != null && cur.next != null ) { 13 ListNode odd = cur.next; // 新的奇数位结点 14 ListNode next = cur

SQL Server游标

一曲冷凌霜 提交于 2020-11-02 15:24:48
转载自:http://www.cnblogs.com/knowledgesea/p/3699851.html。 什么是游标 结果集,结果集就是select查询之后返回的所有行数据的集合。 游标则是处理结果集的一种机制吧,它可以定位到结果集中的某一行,多数据进行读写,也可以移动游标定位到你所需要的行中进行操作数据。 一般复杂的存储过程,都会有游标的出现,他的用处主要有: 定位到结果集中的某一行。 对当前位置的数据进行读写。 可以对结果集中的数据单独操作,而不是整行执行相同的操作。 是面向集合的数据库管理系统和面向行的程序设计之间的桥梁。 游标的分类 根据游标检测结果集变化的能力和消耗资源的情况不同,SQL Server支持的API服务器游标分为一下4种: 静态游标: 静态游标的结果集,在游标打开的时候建立在TempDB中,不论你在操作游标的时候,如何操作数据库,游标中的数据集都不会变。例如你在游标打开的时候,对游标查询的数据表数据进行增删改,操作之后,静态游标中select的数据依旧显示的为没有操作之前的数据。如果想与操作之后的数据一致,则重新关闭打开游标即可。 动态游标: 这个则与静态游标相对,滚动游标时,动态游标反应结果集中的所有更改。结果集中的行数据值、顺序和成员在每次提取时都会变化。所有用户做的增删改语句通过游标均可见。如果使用API函数或T-SQL Where