字符

Android之TextView属性详解

风流意气都作罢 提交于 2020-03-26 06:34:50
android:autoLink 设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all) android:autoText 如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。 android:bufferType 指定getText()方式取得的文本类别。选项editable 类似于StringBuilder可追加字符,也就是说getText后可调用append方法设置文本内容,spannable 则可在给定的字符区域使用样式。 android:capitalize 设置英文字母大写类型。此处无效果,需要弹出输入法才能看得到,参见EditView此属性说明。 android:cursorVisible 设定光标为显示/隐藏,默认显示。 android:digits 设置允许输入哪些字符。如“1234567890.+-*/% ()” android:drawableBottom 在text的下方输出一个drawable,如图片。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。 android:drawableLeft 在text的左边输出一个drawable,如图片。 android

最长回文子串问题 O(n)算法 manacher URAL1297 HDU3068

不问归期 提交于 2020-03-26 01:44:39
先来看一道简单的题, ural1297 给定一个1000长度的字符串,求最长回文子串。 看起来很Naive,乱搞一下,O(n^2)都可以解决。 再来看这个题 HDU3068 120个110000长度的字符串,是不是感觉有点困难了?据说后缀数组也要TLE 给出一个O(n)的解决方案 manacher算法 很有趣的利用了回文子串的性质,进行递推更新。 转载自 http://blog.csdn.net/ggggiqnypgjg/article/details/6645824 这里,我介绍一下O(n)回文串处理的一种方法。Manacher算法. 原文地址: http://zhuhongcheng.wordpress.com/2009/08/02/a-simple-linear-time-algorithm-for-finding-longest-palindrome-sub-string/ 其实原文说得是比较清楚的,只是英文的,我这里写一份中文的吧。 首先:大家都知道什么叫回文串吧,这个算法要解决的就是一个字符串中最长的回文子串有多长。这个算法可以在O(n)的时间复杂度内既线性时间复杂度的情况下,求出以每个字符为中心的最长回文有多长, 这个算法有一个很巧妙的地方,它把奇数的回文串和偶数的回文串统一起来考虑了。这一点一直是在做回文串问题中时比较烦的地方

3. Longest Substring Without Repeating Characters

我的梦境 提交于 2020-03-26 01:06:24
题目描述 题目思路: 这道题要求的是最长的子串而不是最长的子序列,在LeetCode上也给了提示 Note that the answer must be a substring, "pwke" is a subsequence and not a substring. 先不考虑代码的问题,比如有一个字符串“abcabcbb”,要求找出其最长子串,可以一个一个字符的遍历,a,b,c,然后又出现了a,就把一开始已经遍历到的a去掉,变成b,c,a。然后遍历到b,就把已经遍历过的b去掉,变成c,a,b。重复这个过程,最终可以找到最长子串。 从上面的过程中可以看到,我们需要记录之前已经出现过的字符,可以统计字符出现的个数,但是这道题目,字符出现的顺序很重要,所以可以使用Hashmap来建立字符和位置之间的映射(一开始我也没有想到用Hashmap,是从网上查找资料才明白的)。之前我们手动找子串的过程实际是一个滑动窗口的过程,窗口内都是没有重复出现的字符,由于窗口在不断的向右滑动,因此只需要关心每一个字符最后出现的位置即可,并把这个位置和字符建立映射。 为了确定窗口的大小,就必须有一个left指针来指向窗口的前一个位置。然后i向右滑动,i - left就是当前窗口的大小(也是当前能找到的最长子串的长度)。 当窗口向右滑动,i++。遇到新的元素s[i],先判断该元素在Hashmap中有没有

python3 unicod,utf-8,gbk的编码和解码中文显示问题

微笑、不失礼 提交于 2020-03-25 21:29:05
python3的字符编码让人头疼。 这个也不是一篇介绍gbk, utf-8, unicode怎么表示英文,中文字符的基础知识总结。 网上有很多类似的文章,目前也不需要升入学习到了解各个bit位表示什么含义。 目的: 清楚了解为什么在python3不同的编码,解码,windows,linux操作系统下,字符是否能够正确显示。 前提: 了解不同编码用不同的二级制编码和长度来表示字符。 在python3中,各种字符编码之间的互相转换都要通过unicode作为中间编码转换。gbk转换成unicode,再从unicode转换成utf-8。 分析: 要区分4种编码解码概念, 1.编写代码文件时的编码。 notepad++ 在菜单“编码”中有选择,在状态栏可以看到编码类型。 pycharm 在菜单"file","editor","file encoding"中可以设置默认编码。在状态栏可以看到编码类型。 2.python3代码中申明的解码格式。 在代码中#coding=gbk。 编码声明告诉了python编译器以什么格式的编码来解码.py文件,它不会改变系统默认编码和本地默认编码, 也不是用于声明当前代码文件的编码格式的,而是声明当前代码文件的解码方式。换句话说, 代码文件的编码格式取决于你使用的编辑器,而如何解码该文件取决于文件头处的编码声明。 一般地,编码格式应当与解码格式一致

notepad++正则表达式替换字符串详解

一世执手 提交于 2020-03-25 20:06:36
表达式 说明 \t 制表符. \n 新行. . 匹配任意字符. | 匹配表达式左边和右边的字符. 例如, “ab|bc” 匹配 “ab” 或者 “bc”. [] 匹配列表之中的任何单个字符. 例如, “[ab]” 匹配 “a” 或者 “b”. “[0-9]” 匹配任意数字. [^] 匹配列表之外的任何单个字符. 例如, “[^ab]” 匹配 “a” 和 “b” 以外的字符. “[^0-9]” 匹配任意非数字字符. * 其左边的字符被匹配任意次(0次,或者多次). 例如 “be*” 匹配 “b”, “be” 或者 “bee”. + 其左边的字符被匹配至少一次(1次,或者多次). 例如 “be+” 匹配 “be” 或者 “bee” 但是不匹配 “b”. ? 其左边的字符被匹配0次或者1次. 例如 “be?” 匹配 “b” 或者 “be” 但是不匹配 “bee”. ^ 其右边的表达式被匹配在一行的开始. 例如 “^A” 仅仅匹配以 “A” 开头的行. ” 仅仅匹配以 “e” 结尾的行. () 影响表达式匹配的顺序,并且用作表达式的分组标记. \ 转义字符. 如果你要使用 “\” 本身, 则应该使用 “\\”. 例子: 原始串 str[1]abc[991]; str[2]abc[992]; str[11]abc[993]; str[22]abc[994]; str[111]abc[995]

Dreamweaver 搜索里的正则表达式

孤人 提交于 2020-03-25 20:00:45
这些天要帮人改版网站,说是改版,其实是叫我把别人网站里的界面原物搬下来。用Teleport pro对某站点整站下载之后,用Dreamweaver打开,发现代码里有大量的冗余代码,比如: < tppabs ="http://www.****.com/images/bg.gif" style ="font-size:12px;" > 中的 tppabs 标签( 估计是Teleport pro为了方便其自身更新时加上的标记) < a href ="javascript:if(confirm('http://www.xxx.com/bbs/ \n\n文件并未依 Teleport Pro 取回,因为 服务器报告因为错误的发生导致无法读取。 \n\n你要从服务器上打开它吗?'))window.location='http://www.xxx.com/bbs/'" > 中的javascript代码 如此多的代码最好的办法就是匹配替换了。网上搜索了一下,发现竟然有位老兄遇到跟我一样的问题,按照他的办法,可以通过Dreamweaver的正则表达式匹配进行替换。 在Dreamweaver的帮助里可以找到正则表达式中使用的特殊字符列表。 根据列表写出上面两句冗余代码的匹配是: 匹配tppabs标签: \btppabs="h[^"]*" 匹配javascript代码: href="javascript

百度:替换和清除空格

旧时模样 提交于 2020-03-25 19:57:54
一、替换字符 题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy.”,则输出“We%20are%20happy.”。 将长度为1的空格替换为长度为3的“%20”,字符差的产度变长。如果允许我们开辟一个新的数组(用Java的StringBuilder这样的可变字符串,String是不可变字符串)来存放替换空格后的字符串,那么这道题目就非常简单。设置两个指针分别指向新旧字符串首元素,遍历原字符串,如果碰到空格就在新字符串上填入“%20”,否则就复制元字符串上的内容。但是如果面试官要求在原先的字符串上操作,并且保证原字符串有足够长的空间来存放替换后的字符串,那么我们就得另想方法。 如果从前往后替换字符串,那么保存在空格后面的字符串肯定会被覆盖,那么我们就考虑从后往前进行替换。 首先遍历原字符串,找出字符串的长度以及其中的空格数量, 根据原字符串的长度和空格的数量我们可以求出最后新字符串的长度。 设置两个指针originalIndex和newIndex分别指向原字符串和新字符串的末尾位置。 如果originalIndex指向内容不为空格,那么将内容赋值给newIndex指向的位置,如果originalIndex指向为空格,那么从newIndex开始赋值“02%” 直到originalIndex=

去掉tppabs冗余代码,怎样批量去掉tppabs代码

≯℡__Kan透↙ 提交于 2020-03-25 19:56:15
去掉tppabs冗余代码,怎样批量去掉tppabs代码 刚用teleport pro拉了一个整站到本地 所有的超链都被强行加了一句 tppabs =" 就玩了一把dw的替换功能 查找范围:整个当前本地站点 搜索:源代码 查找:\btppabs="h[^"]*" 替换:(为空) 勾选:使用正则表达式 点替换全部按钮 OK~~搞定~~ 另:附dw正则表达式表 字符 匹配 示例 ^ 输入或行的起始部分。 ^T 匹配 “This good earth” 中的 “T” ,但不匹配 “Uncle Tom's Cabin” 中的 “T” 。 $ 输入或行的结尾部分。 h$ 匹配 “teach” 中的 “h” ,但是不匹配 “teacher” 中的 “h” * 0 个或多个前置字符。 um* 匹配 “rum” 中的 “um” 、 “yummy” 中的 “umm” 以及 “huge” 中的 “u” + 1 个或多个前置字符。 um+ 匹配 “rum” 中的 “um” 和 “yummy” 中的 “umm” ,但在 “huge” 中没有任何匹配项 ? 前置字符最多出现一次(即,指示前置字符是可选的)。 st?on 匹配 “Johnson” 中的 “son” 和 “Johnston” 中的 “ston” ,但在 “Appleton” 和 “tension” 中没有任何匹配项 . 除换行符外的任何单字符。

Linux常用操作命令(二)

纵饮孤独 提交于 2020-03-25 19:39:21
一、 文件目录操作命令 1.常用的文本文件操作命令 命令 功能 命令 功能 cat、tac 显示文本文件内容 diff 显示两个文本文件的差异 more、less 分页显示文本文件内容 expand 将文件中的制表符转换为空格 head、tail 显示文本内容的前若干行和后若干行(默认显示10行) unexpand 将文件中的空格转换为制表符 cut 纵向切割出文本指定的部分 dos2unix 将DOS格式的文本转换成Unix格式 paste 纵向合并多个文件 unix2dos 将Unix格式的文本转换成DOS格式 grep 按关键字抽取匹配的行 iconv 将文本从一种编码转换成另一种编码 wc 文本数据统计 tr 转换字符 sort 以行为单位对文本文件排序 sed 流编码器,通常用于非交互式的字符串替换 uniq 删除文本文件中连续重复的行 awk awk是一种用于处理文本的编程语言工具,通常用于处理有格式的文本 2.正则表达式 正则表达式: 是使用某种模式来匹配一类字符串的一个公式。 特殊字符 含义 类型 举例 说明 ^ 匹配首字符 BRE ^x 以字符x开始的字符串 $ 匹配尾字符 BRE x$ 义x字符结尾的字符串 . 匹配任意一个字符 BRE l..e live;love;life等等 ? 匹配任意一个可选字符 ERE xy? x;xy * 匹配0次或多次重复 BRE

《剑指offer》——替换空格

我与影子孤独终老i 提交于 2020-03-25 19:26:49
题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 分析:这道题如果允许开辟一个新的数组,我们只需要从头开始扫描原数组中的每个字符, 1)若字符非空格则复制字符到新数组中, 2)若字符为空格则在新数组中填充“%”,“2”,”0”三个字符, 3)继续扫描重复以上操作。 难点在于如果不允许开辟新的数组空间,替换发生在原数组上,我们要做的是将1个字符替换为3个字符,且替换位置后面的字符不能被覆盖。下面我们以题目中的例子看一下字符串在内存中的存储,每个格子存储一个字符 1 W e a r e h a p p y . \0 2 W e % 2 0 a r e h a p p y . \0 3 W e % 2 0 a r t % 2 0 h a p p y . \0 第一行代表原字符串,后面两行代表两次替换操作完成整个字符串的替换,其中2在1的基础上以红色字体为基准后面的字符都向后移动2位,3在2的基础上以红色字体为基准后面的字符又都向后移动2位,而相对于1移动了4位。 初级想法:1)从头开始扫描数组,遇到空格,先将空格后面的字符做依次向后移动2位操作,然后填充"%","2","0",三个字符,记下填充后的下一个位置, 2)从这个位置接着扫描字符串,遇到空格做和上面同样的操作; 3