temp

完美的代价

こ雲淡風輕ζ 提交于 2020-03-21 12:05:30
蓝桥杯基础练习: 问题描述   回文串,是一种特殊的字符串,它从左往右读和从右往左读是一样的。小龙龙认为回文串才是完美的。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。   交换的定义是:交换两个相邻的字符   例如mamad   第一次交换 ad : mamda   第二次交换 md : madma   第三次交换 ma : madam (回文!完美!) 输入格式   第一行是一个整数N,表示接下来的字符串的长度(N <= 8000)   第二行是一个字符串,长度为N.只包含小写字母 输出格式   如果可能,输出最少的交换次数。   否则输出Impossible 样例输入 5 mamad 样例输出 3 【分析】:首先要判断该字符串能不能变成回文串,如果不能你去进行操作就是在浪费时间了,所以判断依据就是统计该字符串中的各字符个数为奇数的个数,如果为奇数的字母个数大于1个,说明整个字符串到最后会有两个落单的字母,肯定不能凑成回文串了,所以这种情况直接“Impossible”就可以了。如果能成为回文串的话,就写一个函数进行递归求解。 1 import java.util.Scanner; 2 3 public class Main{ 4 public static void main(String args[]){ 5 Scanner sc =

Java二分查找

偶尔善良 提交于 2020-03-19 16:45:31
相关代码 二分法查找 //二分查找(折半查找) //要求数组是个有序数组 public class BinarySearch { public static void main(String[] args) { int[] arr={1,2,5,7,8,9,10,10,18,20}; int left=0; int right=arr.length-1; int res=binarySearch(arr, 10,right,left); if(res==-1){ System.out.println("没找到!"); }else{ System.out.println("找到了,下标是"+res); } } public static int binarySearch(int[] arr,int value,int right,int left){ if(right return -1; } int mid=(right+left)/2; if(arr[mid]>value){ return binarySearch(arr,value,mid-1,left); }else if(arr[mid] return binarySearch(arr,value,right,mid+1); }else{ return mid; } } } 这个数组第6位是10,第7位也是10

Java二分查找

一曲冷凌霜 提交于 2020-03-19 16:45:10
相关代码 二分法查找 //二分查找(折半查找) //要求数组是个有序数组 public class BinarySearch { public static void main(String[] args) { int[] arr={1,2,5,7,8,9,10,10,18,20}; int left=0; int right=arr.length-1; int res=binarySearch(arr, 10,right,left); if(res==-1){ System.out.println("没找到!"); }else{ System.out.println("找到了,下标是"+res); } } public static int binarySearch(int[] arr,int value,int right,int left){ if(right return -1; } int mid=(right+left)/2; if(arr[mid]>value){ return binarySearch(arr,value,mid-1,left); }else if(arr[mid] return binarySearch(arr,value,right,mid+1); }else{ return mid; } } } 这个数组第6位是10,第7位也是10

leetcode1371

我们两清 提交于 2020-03-19 11:01:34
1 class Solution { 2 public int findTheLongestSubstring(String s) { 3 int n = s.length(); 4 Map<Character, Integer> map = new HashMap<>(); 5 map.put('a', 0); 6 map.put('e', 0); 7 map.put('i', 0); 8 map.put('o', 0); 9 map.put('u', 0); 10 int l = 0, maxlen = 0; 11 for (int r = 0; r < n; r++) { 12 char curr = s.charAt(r); 13 if (map.containsKey(curr)) { 14 map.put(curr, map.get(curr) + 1); 15 } 16 Map<Character, Integer> temp = new HashMap<>(); 17 18 temp.put('a', map.get('a')); 19 temp.put('e', map.get('e')); 20 temp.put('i', map.get('i')); 21 temp.put('o', map.get('o')); 22 temp.put('u', map

Leetcode(二)两数相加

无人久伴 提交于 2020-03-18 11:28:30
两数相加 题目描述 给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 思路: 解决这个问题我并没有想到什么很便捷的方法,就是从两个链表的表头逐位累加,并注意判断是否进位值。 代码如下: public static ListNode towNumbers(ListNode l1, ListNode l2){ ListNode node=new ListNode(0); ListNode temp=node; int sum=0; int carry = 0; while(l1!=null||l2!=null){ int x=l1==null?0:l1.val; int y=l2==null?0:l2.val; sum=x+y+carry; carry=sum/10; temp.next=new ListNode(sum%10); temp=temp.next; l1=l1==null?null:l1.next; l2=l2==null

Kettle中通过触发器方式实现数据 增量更新

穿精又带淫゛_ 提交于 2020-03-18 04:21:22
在使用Kettle进行数据同步的时候, 共有 1.使用时间戳进行数据增量更新 2.使用数据库日志进行数据增量更新 3.使用触发器+快照表 进行数据增量更新 今天要介绍的是第3中方法。 实验的思路是这样的,在进行数据同步的时候, 源数据表为A表, A表要对 目标表(target table) B 表和C表进行数据的同步更新。 即A表中的对应字段发生变化之后, 会通过触发器将对应变化的字段在A表中的主键值写入到一个临时表temp中(该表作为快照表使用)。 快照表中只有两个字段,一个是temp_id,是快照表的主键,另一个是 A_id,记录的是在A表中发生变化的字段对应的主键的值。 temp( temp_id int primary key auto_increment , A_id int ); 接下来,通过对快照表temp进行扫描,把在B表和C表中出现的与temp表中与A_id相匹配的字段, 从B,C两个目标表中进行移除。 在接下来,让A表作为源 让B和C作为目标 对B,C做插入/更新操作; 这样就实现了A表对B,C两个表的更新,在后续的操作中可以使用SQL语句将 temp表, 以及触发器进行 drop操作,以免其浪费内存资源。 在创建 trigger的时候,只要针对A表的 删除、 更新操作进行创建trigger 即可。 下面来分析一下,对A表进行的不同操作的情况: 1

slider插件 滚动条插件 基于g2-plugin-slider.js修改

纵饮孤独 提交于 2020-03-16 13:40:14
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,height=device-height"> <title>g2 slider</title> <style> ::-webkit-scrollbar { display: none; } html, body { overflow: hidden; height: 100%; margin: 0; } .m-cf-slider-wrapper{display: inline-block; position: absolute;bottom: 10px;left: 390px;right: 360px;height: 56px;} .m-cf-slider {display: inline-block;width: 100%;height: 100%;} </style> </head> <body> <div class="m-cf-slider-wrapper"> <div id="m-cf-slider" class="m-cf-slider"></div> </div> <script> /*Fixing iframe window

Python3标准库:tempfile临时文件系统对象

泪湿孤枕 提交于 2020-03-16 09:46:45
1. tempfile临时文件系统对象 要想安全的创建名字唯一的临时文件,以防止被试图破坏应用或窃取数据的人猜出,这很有难度。tempfile模块提供了多个函数来安全的创建临时文件系统资源。TemporaryFile()打开并返回一个未命名的文件,NamedTemporaryFile()打开并返回一个命名文件,SpooledTemporaryFile在将内容写入磁盘之前先将其保存在内存中,TemporaryDirectory是一个上下文管理器,上下文关闭时会删除这个目录。 1.1 临时文件 如果应用需要临时文件来存储数据,而不需要与其他程序共享这些文件,则应当使用TemporaryFile()函数创建文件。这个函数会创建一个文件,而且如果平台支持,它会立即断开这个新文件的链接。这样一来,其他程序就不可能找到或打开这个文件,因为文件系统表中根本没有这个文件的引用。对于TemporaryFile()创建的文件,无论通过调用close()还是结合使用上下文管理器API和with语句,关闭文件时都会自动删除这个文件。 import os import tempfile print('Building a filename with PID:') filename = '/guess_my_name.{}.txt'.format(os.getpid()) with open(filename

python初识及变量

混江龙づ霸主 提交于 2020-03-16 03:50:00
一、基础 1、文件的后缀是 .py 2、两种执行方式 python解释器 .py文件路径 python进入解释器 实时输入并获取执行结果 3、解释器路径 #!/usr/bin/evn python (Linnux) #-*-coding:utf8-*- python 2中 只要出现中文,头部必须加编码 (想要加头部,两行必须相邻) python3 中无需关注 4、执行一个操作 python中 单行注释用#,多行注释用 ''' input 的用法 永远等待 直到用户输入了值 就将输入的值赋给一个东西 5、变量只能由数字、字母 、下划线组成 但不能以数字开头 python的一些关键字不能作为变量名 变量名最好有意义一些 最好不能和python内置的东西重复 user-id python中一般不用userId 6、条件语句 if 条件:   print()#内部代码块 else:   print() 直接用tab 代替四个空格 同一个代码块下,缩进的字符必须相等 if 支持嵌套 if、elif (类似于多条件判断) #pass 什么都不执行 过 7、基本数据类型 数字、字符串、列表、元祖、字典、布尔值 字符串 用印号引起来 " " """ """ ' ' ''' ''' 加法 乘法 数字 % #对一个数 取余 ** 一个数的幂 判断奇偶性 temp=a%2 if temp==0:

nginx的在linux系统中的安装

一笑奈何 提交于 2020-03-15 09:31:23
1 nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境。 n gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++ n PCRE PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。 yum install -y pcre pcre-devel 注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。 n zlib zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。 yum install -y zlib zlib-devel n openssl OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。 nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。 yum install -y