python字符串操作

leetcode刷题记第14题解法(python解析)

感情迁移 提交于 2020-01-26 08:48:43
leetcode刷题记--> 14题解法(python解析) 题目定义 解题 1. 暴力解法 2. 垂直扫描 3. 利用zip函数 4. ascII码排序比较 5. os库 实现 题目定义 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。 说明: 所有输入只包含小写字母 a-z 。 来源:力扣(LeetCode) 链接: leetcode_14题 . 解题 本次使用4种方法,在leetcode上还有更多的方法,只能说真牛逼,真聪明。 1. 暴力解法 2. 垂直扫描 我们从前往后枚举字符串的每一列,先比较每个字符串相同列上的字符(即不同字符串相同下标的字符)然后再进行对下一列的比较。 3. 利用zip函数 利用python的zip函数,把str看成list然后把输入看成二维数组,左对齐纵向压缩,然后把每项利用集合去重,之后遍历list中找到元素长度大于1之前的就是公共前缀 4. ascII码排序比较 利用python的max()和min(),在Python里字符串是可以比较的,按照ascII值排,举例abb, aba,abac,最大为abb

正则表达式之基础知识

廉价感情. 提交于 2020-01-25 23:43:57
官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 正则表达式 在线测试工具 http://tool.chinaz.com/regex/ 字符组 : [字符组] 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示 字符分为很多类,比如数字、字母、标点等等。 假如你现在要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0、1、2...9这10个数之一。 正则 待匹配字符 匹配结果 说明 [0123456789] 8 True 在一个字符组里枚举合法的所有字符,字符组里的任意一个字符和"待匹配字符"相同都视为可以匹配 [0123456789] a False 由于字符组中没有"a"字符,所以不能匹配 [0-9] 7 True 也可以用-表示范围,[0-9]就和[0123456789]是一个意思 [a-z] s True 同样的如果要匹配所有的小写字母,直接用[a-z]就可以表示 [A-Z] B True [A-Z]就表示所有的大写字母 [0-9a-fA-F] e True 可以匹配数字,大小写形式的a~f,用来验证十六进制字符 字符: 补充: \A 仅匹配字符串的开始 \A12AC匹配12AC \b 匹配一个单词的边界

165. 比较版本号

心已入冬 提交于 2020-01-25 20:54:41
比较两个版本号 version1 和 version2。 如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。 你可以假设版本字符串非空,并且只包含数字和 . 字符。 . 字符不代表小数点,而是用于分隔数字序列。 例如,2.5 不是“两个半”,也不是“差一半到三”,而是第二版中的第五个小版本。 你可以假设版本号的每一级的默认修订版号为 0。例如,版本号 3.4 的第一级(大版本)和第二级(小版本)修订号分别为 3 和 4。其第三级和第四级修订号均为 0。 示例 1: 输入: version1 = “0.1”, version2 = “1.1” 输出: -1 示例 2: 输入: version1 = “1.0.1”, version2 = “1” 输出: 1 示例 3: 输入: version1 = “7.5.2.4”, version2 = “7.5.3” 输出: -1 示例 4: 输入:version1 = “1.01”, version2 = “1.001” 输出:0 解释:忽略前导零,“01” 和 “001”表示相同的数字 “1”。 示例 5: 输入:version1 = “1.0”, version2 = “1.0.0” 输出:0 解释:version1没有第三级修订号

深入浅出 java.String

喜你入骨 提交于 2020-01-25 18:51:33
深入浅出 java.String Java 处理字符串常用的一些方法 Java定义一个字符串 直接定字符串 直接定义字符串表示直接使用 “” 来表示字符串中的内容 String str = "Hello Mujey"; String str; str = "Hello Mujey" 对字符串的赋值操作可以在声明号String类型的句柄之后进行,但是在使用这个对象的之前必须进行赋值操作。 使用String类进行定义 String类位于 java.lang 包中,当我们创建一个java程序的时候,系统会自动帮我们引用 java.lang.* 所以我们可以直接使用,并不需要手动 import String str = new String("Hello Mujey"); String s = new String(str); 注意: 当直接使用String(),括号里面不输入任何参数的时候,会创建一个空的字符串,并且赋值给句柄。 String(),括号中还可以输入一个数组: char[] c = {'M','u','j','e','y'}; String str = new String(c); System.out.println(str); // Mujey 在String()的括号中放入一个数组的时候,实质上是对该数组进行了一个克隆操作,

python初学--day1

断了今生、忘了曾经 提交于 2020-01-25 09:30:16
第一个PYTHON代码 交互式编程它不需要创建脚本文件,是直接通过 Python 的解释器的交互模式进来编写代码。如下图所示(win7操作) 下图为一个Python代码内部执行图,可以有助于理解python整个过程 1 C:\Users\miao>python -V 2 Python 2.7.10 3 4 C:\Users\miao>python 5 Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on wi 6 n32 7 Type "help", "copyright", "credits" or "license" for more information. 8 >>> print 'Hello,World!' 9 Hello,World! 10 >>>exit() 通过创建脚本文件,先编译一个文本文件,文件后缀名为.py (注:txt结尾的文件也是可以运行的,但是它在运行后不会生成pyc格式的文件,这样的话如果用户想调用这个程序就不能了) .pyc速度快,如果.py内容修改,则先执行.py.然后生成.pyc执行 编写内容如下: 1 #!/usr/bin python 2 #-*- coding:utf-8 -*- 3 4 print 'hello,world' 5

python&C&Assembly 常见函数(持续更新)

 ̄綄美尐妖づ 提交于 2020-01-24 18:44:48
PYTHON range()函数 range(start,stop[,step]) 计数从start开始(默认为0),到stop结束(不包括stop),step为步长,默认为1 example: range(9):[0,1,2,3,4,5,6,7,8] range(1,11):[1,2,3,4,5,6,7,8,9,10] range(0,10,3):[0,3,6,9] range(0,-10,-1):[0,-1,-2,-3,-4,-5,-6,-7,-8,-9] int函数 class int(x,base=10) x--字符串或数字 base--进制数,默认为十进制(如何看x) 返回值:返回整型数据 字符串的截取 变量[头下标:尾下标],其中下标从0开始,可以是正数或负数,下标位置为空表示截取到头或尾,注意:列表右边的元素是不被包含的。 subprocess python中的subprocess模块定义了Popen类: class subprocess.Popen( args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines

Python基础教程(第三版)读书笔记(3)

我怕爱的太早我们不能终老 提交于 2020-01-24 16:03:43
文章目录 字符串 字符串的基本操作 设置字符串的格式 替换字段名 基本转换 宽度,精度和千位分隔符 符号,对齐和用0填充 字符串方法 小结 字符串 字符串的基本操作 昨天学了列表和元组,今天学了python中的字符串。字符串也是序列,所以标准序列操作(索引,切片,乘法,成员资格审查,长度,最大值和最小值)都适用于字符串。需要注意的是,字符串是 不可变 的。所以对字符串元素赋值或切片赋值都是非法的。 设置字符串的格式 字符串的格式设置的主要思想是对字符串调用方法 format ,并提供要设置其格式的值。这些值之后会被插入到字符串中,以替换用花括号{}括起的 替换字段 。 替换字段是格式字符串中最重要的部分。替换字段主要由如下部分组成,每个部分都是可选的。 字段名 :索引或标识符,指出要设置那个值的格式并使用结果来替换该字段。除指定值外,还可指定值的特定部分,如列表的元素。 转换标志 :跟在 叹号 后面的单个字符。当前支持的字符包括r(表示repr), s(表示str), 和a(表示ascii)。如果你指定了转换标志,将不再使用对象本身的格式设置机制,而是使用 指定的函数 将对象 转换 为字符串,再做进一步的格式设置。 格式说明符 : 跟在冒号后面的表达式。格式说明符让我们能够详细的指定最终的格式,包括格式类型(如字符串,浮点数,或十六进制数)字段宽度和数的精度如何显示符号和千位分隔符

Python 正则表达式

限于喜欢 提交于 2020-01-24 15:32:33
Python 正则表达式 在Python中需要通过正则表达式对字符串进行匹配的时候,可以使用一个模块来操作,名字为re import re (1)三种基本方法 在re模块中,通常使用三种方法,match,search和findall,下面对这三种方法进行简单的介绍: 一.match方法 re.match 尝试从字符串的 起始位置 匹配一个模式,匹配成功则返回的是一个匹配对象(这个对象包含了我们匹配的信息),如果不是起始位置匹配成功的话,match()返回的是空, 注意:match只能匹配到一个 ** 下面来看代码理解 s = 'python123python666python888' result = re . match ( 'python' , s ) print ( result ) # <re.Match object; span=(0, 6), match='python'> print ( result . span ( ) ) # (0, 6) print ( result . group ( ) ) # python 1.通过span()提取匹配到的字符下标 2.通过group()提取匹配到的内容 而s字符串中有3个python的存在,match只能匹配到一个 下面我们改变一下s,得到不一样的结果 s = '1python123python666python888'

Python String 方法详解

穿精又带淫゛_ 提交于 2020-01-24 02:21:02
官网文档地址: https://docs.python.org/3/library/stdtypes.html#string-methods 官网 公号:软测小生ruancexiaosheng 文档里的所有String的方法都在下面,基于 Python 3.X 版本,截止日期是2017/10/12日,之后的可能会有更新。花了一天的时间学习并记录了一下 4.7.1. String Methods str. capitalize() --> String   返回字符串,其首字母大写,其余部分小写 1>>> str = "TEST" 2>>> str1= "test" 3>>> print(str + "-->" + str.capitalize() +'\n' + "-->" + str + str1.capitalize()) 4 TEST-->Test 5 TEST-->Test str. casefold ( ) --> String     字符串转换成小写,用于不区分大小写的字符串比较 1>>> str = "TESTtest" 2>>> print(str.casefold()) 3 testtest str. center (width [, fillchar ] ) -->String    指定 长度 (此处是 长度 并不是索引值) 填充字符 1>>> str =

python基础之字符串

我只是一个虾纸丫 提交于 2020-01-24 02:17:51
作者:tongqingliu 转载请注明出处: http://www.cnblogs.com/liutongqing/p/7025969.html python基础之字符串 字符串不可变,也就是说,改变一个字符串的元素需要新建一个新的字符串。 >>> a = 'hello world' # 创建字符串 >>> b = 'python' >>> c = a[:6] + b # 字符串的索引和连接 >>> c 'hello python' Python转义字符 转义字符 描述 (在行尾时) 续行符 \ 反斜杠符号 ' 单引号 " 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \000 空 \n 换行 \v 纵向制表符 \t 横向制表符 \r 回车 \f 换页 \oyy 八进制数,yy代表的字符,例如:\o12代表换行 \xyy 十六进制数,yy代表的字符,例如:\x0a代表换行 \other 其它的字符以普通格式输出 Python字符串运算符 操作符 描述 + 字符串连接 * 重复输出字符串 [] 通过索引获取字符串中字符 [ : ] 截取字符串中的一部分 in 成员运算符 - 如果字符串中包含给定的字符返回 True not in 成员运算符 - 如果字符串中不包含给定的字符返回 True r/R 原始字符串:所有的字符串都是直接按照字面的意思来使用