abcd

python bytes和bytearray、编码和解码

匿名 (未验证) 提交于 2019-12-02 22:11:45
str是字符数据,bytes和bytearray是字节数据。它们都是序列,可以进行迭代遍历。str和bytes是不可变序列,bytearray是可变序列,可以原处修改字节。 bytes和bytearray都能使用str类型的通用函数,比如find()、replace()、islower()等,不能用的是str的格式化操作。所以,如有需要,参考 字符串(string)方法整理 来获取这些函数的使用方法。 str str将各个字符组合在一起,以一种不可变序列进行存储 。但是在底层它还是一个个的二进制数,是由一个个的字节组成的(也就是byte),只不过python根据指定的字符集编码"强行"将字节序列显示为字符。 python 3.x中默认str是unicode格式编码的,例如UTF-8字符集。 >>> import sys >>> sys.getdefaultencoding() 'utf-8' unicode编码的str,意味着能够直接存储除ascii码外的很多字符,比如中文,比如欧洲的重音符号。还意味着可以将一个unicode字符存储为多个字节,并将连续多个的字节翻译成单个对应的字符。 >>> a = "我" >>> a '我' >>> ord(a) 25105 >>> a.encode() b'\xe6\x88\x91' 根据指定字符集

codeforces #591 div2 ABCD

青春壹個敷衍的年華 提交于 2019-12-02 19:51:20
A. CME Description Solution B. Strings Equalization Description Solution C. Save the Nature Description 给出一个长为n序列A,A[i]=x表示第i次卖出的物品的价值为x,你可以任意交换其中的值。 给出$a,b,x,y$,表示第$a,2a,3a...$,$b,2b,3b,...$卖出的物品可以分别获得x%,y%的利润。 问如何安排顺序可以使最少的售卖物品而获得不低于k的利润。 Solution 真的,最近总是遇见这种题。 贪心+二分。 首先,序列可以任意交换,那么如果卖出x个物品能使利润大于等于k,那么x+1个物品一定能达到。 就是说答案具有单调性。 那么考虑二分答案。(而且题目明确最小值最大,二分答案关键字hhh 在一个给定的答案p的检测中,我们首先满足lcm(a,b)的最大。 然后,如果x>y先满足a,否则先满足b 最后判断当前利润是否大于等于k。 1 #include <algorithm> 2 #include <cctype> 3 #include <cmath> 4 #include <cstdio> 5 #include <cstdlib> 6 #include <cstring> 7 #include <iostream> 8 #include <map> 9

LeetCode算法题——旋转字符串

♀尐吖头ヾ 提交于 2019-12-02 11:29:21
题目 给定两个字符串, A 和 B。 A 的旋转操作就是将 A 最左边的字符移动到最右边。 例如, 若 A = 'abcde',在移动一次之后结果就是'bcdea' 。 如果在若干次旋转操作之后,A 能变成B,那么返回True。 示例 1: 输入: A = 'abcde', B = 'cdeab' 输出: true 示例 2: 输入: A = 'abcde', B = 'abced' 输出: false 注意: A 和 B 长度不超过 100。 代码实现 abcd修改字符串sd.replace(0,1,"") bcd 从字符串中截取字串sd.substring(0,1) abcd/a public class demo{ public static boolean judge(String a,String b) { boolean flag = false; for(int i=0;i<b.length();i++) { String x = a.substring(0,1); StringBuilder sd = new StringBuilder(a); String y = sd.replace(0,1,"").append(x).toString(); if(y.equals(b)) { flag = true; }else { a = y; } } return

谈谈lucene倒排索引的存储方式(3-3)

这一生的挚爱 提交于 2019-12-02 07:48:00
通过 谈谈lucene倒排索引的存储方式(3-2) 和 谈谈lucene倒排索引的存储方式(3-1) 的分析可知,当有公共前缀的词的数量达到指定阈值时会写入到一个Block中,不过还没有对其中的细节进行分析,现通过给定的输入abc、abcd、abcde、abcdef、abcdf、abcdg、abe、abf、abg、abh,以及参数阈值MIN_BLOCK_SIZE = 3和MAX_BLOCK_SIZE = 4来对倒排索引的构成进一步研究。 当输入abe时由于abcd、abcde、abcdef、abcdf、abcdg以abcd为前缀的个数为5个已经超过MIN_BLOCK_SIZE个数,因此达到写成一个Block的条件,由于MAX_BLOCK_SIZE=4所以对这5个item需要进一步按照MIN_BLOCK_SIZE3个为一组进行拆分,即abcd、abcde、abcdef会写到一个Block( 该Block也是一个leafBlock,因为它的元素只有词 )中,除了前缀abcd,其余的后缀以及postings元数据(经过压缩)会全部写入到termsOut文件流中,对于该Block有以下重要属性prefix, startFP, hasTerms, isFloor, floorLeadLabel, subIndices,其中prefix表示公共前缀即abcd

codeforces global round5 ABCD题解

醉酒当歌 提交于 2019-12-02 06:27:39
A. Balanced Rating Changes Description 给一个长度位n总和为0的一个序列,要求每个值除以2,对于奇数可以向上取整也阔以向下取整,且最终和依然为0 Solution 1 #include <algorithm> 2 #include <cctype> 3 #include <cmath> 4 #include <cstdio> 5 #include <cstdlib> 6 #include <cstring> 7 #include <iostream> 8 #include <map> 9 #include <numeric> 10 #include <queue> 11 #include <set> 12 #include <stack> 13 #if __cplusplus >= 201103L 14 #include <unordered_map> 15 #include <unordered_set> 16 #endif 17 #include <vector> 18 #define lson rt << 1, l, mid 19 #define rson rt << 1 | 1, mid + 1, r 20 #define LONG_LONG_MAX 9223372036854775807LL 21 #define pblank

codeforces #593 div2 ABCD 题解

对着背影说爱祢 提交于 2019-12-02 00:17:36
A. Stones Description 给出3堆物品,个数分别为a,b,c 有两种取数方式,a1b2,b1c2,问最多取多少物品 Solution $O(n^2)暴力$ 1 #include <algorithm> 2 #include <cctype> 3 #include <cmath> 4 #include <cstdio> 5 #include <cstdlib> 6 #include <cstring> 7 #include <iostream> 8 #include <map> 9 #include <queue> 10 #include <set> 11 #include <stack> 12 #if __cplusplus >= 201103L 13 #include <unordered_map> 14 #include <unordered_set> 15 #endif 16 #include <vector> 17 #define lson rt << 1, l, mid 18 #define rson rt << 1 | 1, mid + 1, r 19 #define LONG_LONG_MAX 9223372036854775807LL 20 #define ll LL 21 using namespace std; 22 typedef long

git推送代码问题之:ERROR: [abcdefg] missing Change-Id in commit message footer

岁酱吖の 提交于 2019-12-01 10:04:23
一、问题: 在日常的工作中,使用git推送代码时会出现以下报错,“missing Change-Id in commit message” : qinjiaxi:$ git push origin HEAD:refs/for/develop 对象计数中: 31, 完成. Delta compression using up to 48 threads. 压缩对象中: 100% (30/30), 完成. 写入对象中: 100% (31/31), 10.92 KiB | 0 bytes/s, 完成. Total 31 (delta 9), reused 0 (delta 0) remote: Resolving deltas: 100% (9/9) remote: Processing changes: refs: 1, done remote: ERROR: [b27c7da] missing Change-Id in commit message footer remote: remote: Hint: To automatically insert Change-Id, install the hook: remote: gitdir=$(git rev-parse --git-dir); scp -p -P 29418 xxx.com.cn:hooks/commit-msg $

谈谈lucene倒排索引的存储方式(3-3)

做~自己de王妃 提交于 2019-11-30 17:57:31
通过 谈谈lucene倒排索引的存储方式(3-2) 和 谈谈lucene倒排索引的存储方式(3-1) 的分析可知,当有公共前缀的词的数量达到指定阈值时会写入到一个Block中,不过还没有对其中的细节进行分析,现通过给定的输入abc、abcd、abcde、abcdef、abcdf、abcdg、abe、abf、abg、abh,以及参数阈值MIN_BLOCK_SIZE = 3和MAX_BLOCK_SIZE = 4来对倒排索引的构成进一步研究。 当输入abe时由于abcd、abcde、abcdef、abcdf、abcdg以abcd为前缀的个数为5个已经超过MIN_BLOCK_SIZE个数,因此达到写成一个Block的条件,由于MAX_BLOCK_SIZE=4所以对这5个item需要进一步按照MIN_BLOCK_SIZE3个为一组进行拆分,即abcd、abcde、abcdef会写到一个Block( 该Block也是一个leafBlock,因为它的元素只有词 )中,除了前缀abcd,其余的后缀以及postings元数据(经过压缩)会全部写入到termsOut文件流中,对于该Block有以下重要属性prefix, startFP, hasTerms, isFloor, floorLeadLabel, subIndices,其中prefix表示公共前缀即abcd

day28

大兔子大兔子 提交于 2019-11-30 17:02:16
目录 包 什么是包 为什么要有包 如何使用包 模块与包 导入包内包 绝对导入和相对导入 注意事项 time模块 时间戳(timestamp) 格式化的时间字符串(format string) 结构化的时间(struct time) 三种格式时间的转换 结构化时间 , 定义 now_time datetime模块 hashlib模块 模块特点 基本用法 hmac模块 基本用法 typing模块 作用 基本使用 常用类型 request模块 使用方法 re模块 作用 常用元字符 ^ 以...开头 $ 以...结尾 . 任意字符 \d 数字 \D 非数字 \w 非空字符,即数字字母下划线 \W 空字符,包括空格 换行 \s 空字符,包括空格 换行 \S 非空字符,即数字字母下划线 +前面的一个字符至少1个 [1,正无穷) ? 前面的一个字符0-1个 前一个字符[0,1] 最大只有一个 * 前面的一个字符至少0个 前一个字符[0,正无穷) [] 中括号内的都可以 , 但是只占一个位置 [^] 中括号的都不可以 | 或 满足就打印 , 一个或者两个三个 {2} 前面的字符重复2个 {1,2} 前面的字符重复1-2个 区间是[1,2] 贪婪模式 .(任意字符)*(0-无穷个) 非贪婪模式 .(任意字符)*(0-无穷个)?(让他进入非贪婪模式) re的常用函数 findall compile

Day 17 包/time/datetime/random/hashlib/hmac/typing/requests/re模块

岁酱吖の 提交于 2019-11-30 16:55:30
包 什么是包 包就是模块,也是用来导入的 包的本质就是内含带有 .py 文件的文件夹 为什么要有包 随着文件越来越大,模块越来越多,模块设计者对模块的管理和维护越来越复杂,因此我们可以使用包来扩展模块的功能. 如何使用包 模块与包 导入模块发生的三件事: 创建一个模块的名称空间 执行.py文件,将执行过程中产生的名字存放在名称空间中 在当前执行文件中放入模块名,这个名字指向模块的名称空间 导入包发生的三件事情: 创建一个包的名称空间 由于包是一个文件夹,无法执行包,因此执行包下的 .py 文件,将执行过程中产生的名字存放在包名称空间中(即包的名称空间存放的名字都是来自 .py ) 在当前执行文件中放入包名,这个名字指向包的名称空间 包是含有 _\_init__.py 的文件夹; 导包就是导入 __init__.py 包一定是被当作模块文件导入,模块文件 m1.py/m2.py 的搜索路径以执行文件 包的介绍 .py 路径为准 导的哪个名称空间的名字就能使用这个名称空间,导的哪个函数名或者变量名就能使用这个函数或者变量 扩展模块功能 导入包内包 # aaaa/.py from aaaa import bbb 导入包内包的模块 # bbb/.py from aaaa.bbb import m3 # aaaa/.py from aaaa.bbb.m3 import f1 # 包的介绍