7.字符串公开课_第1页
7.字符串公开课_第2页
7.字符串公开课_第3页
7.字符串公开课_第4页
7.字符串公开课_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第七讲字符串2026/4/241字符串分类字符串基本操作字符串中取数字字符串中取单词字符统计2026/4/242一、字符串一般操作查找插入删除2026/4/243一、字符串一般操作查找在字符串source中查找指定的关键字key,若存在,则返回第1次出现该key的位置,否则返回-1。思路:从字符串第1个位置开始,取出关键帧key长度的子串,并与关键字key比较,若相同则返回该位置,否则继续,直到字符串结束。2026/4/244一、字符串一般操作插入编写函数实现字符串中指定位置前插入指定的字符串key思路:先找到插入字符串的位置,然后插入指定的字符串key。程序代码1:利用切片实现2026/4/245一、字符串一般操作插入程序代码2:用循环逐一取字符并累加到结果变量中2026/4/246一、字符串一般操作删除输入原始字符串,输入待删除的key,返回删除key后的字符串。例如原始字符串souceStr=”abcabdabcfab”,key=”abc”。如下图:2026/4/247思路1:原始字符串不变,将与key比较后,不同的字符串保存到新的变量中。算法流程如下:置初值i=0①当i<=len(sourceStr)-len(key),从位置i开始取出子串(长度len(key))。将取出的子串与key比较,若相同转②,否则转③②i=i+len(key),转①③将该字符souceStr[i]累加到结果变量result中,并转①一、字符串一般操作删除字符,代码实现2026/4/248一、字符串一般操作删除字符思路2:找到key字符串后修改原始字符串置初值i=0,s=len(sourceStr)①当s-i>=len(key),从位置i开始取出子串(长度len(key)),将取出的子串与key比较,若相同转②,否则转③②将key内容从原始字符串中删除,转①③继续下一个位置查找即i=i+1,并转①2026/4/249二、字符串中取数字实例取出字符串中连续数字,并加以处理。如有字符串”aba123aA456a655”,则输出[123,456,655]。思路1.数字字符串累加法从字符串第1个字符开始,碰到数字的,把它取出来累加到变量中,碰到非数字字符时,将变量追加到结果列表中,同时清空变量,重复上述过程,直到字符串结束。2026/4/2410二、字符串中取数字思路2切片法从字符串第1个字符开始,碰到数字的,统计数字出现的次数,碰到非数字字符时,利用切片将该位置之前的长度为num的数字字符串取出来,并记录到结果列表中,同时清空计数变量num,重复上述过程,直到字符串结束。2026/4/2411二、字符串中取数字思路3利用秦九韶算法取出数字从字符串第1个字符开始,碰到数字的,把它取出来,利用秦九韶算法累加到变量num中,当碰到非数字字符时,将变量追加到结果列表中,同时清空变量num,重复上述过程,直到字符串结束。2026/4/2412三、字符串中取单词实例1一段文本中拆分单词,将单词取出存入列表。思路1位置法:枚举文本的所有字符,记录单词中字符的个数,以及单词的结束位置,截取单词。2026/4/2413三、字符串中取单词思路2累加法:枚举文本的所有字符,遇到字母开头的,将字母累加,遇到非字母时,将累加的单词添到列表中。2026/4/2414四、字符统计字符串中经常需要统计字母,数字的个数。实例1输入一串字符串,统计数字和英文字母和其它字符的个数。思路:枚举字符串,并逐个判断字符串属于数字,英文字母和其他字符,并计数于不同的变量中。如本题中letters表示英文字符个数,digits表示数字字符个数,others表示其它字符。2026/4/2415五、字符统计实例2输入一串字符串,统计每个字母个数。思路1:英文字母有26个,统计每个字母的个数,可以定义一个列表。用来存放每个字母的个数。思路2:定义字典来保存每个字母及个数,字母表示字典的key,个数表示字典的values。2026/4/2416六、字符串加密凯撒密码是罗马扩张时期朱利斯•凯撒(JuliusCaesar)创造的,用于加密通过信使传递的作战命令。它将字母表中的字母移动一定位置而实现加密。例如如果向右移动2位,则字母A将变为C,字母B将变为D,…,字母X变成Z,字母Y则变为A,字母Z变为B。下面讲解具体思路。思路1假定原文s="abcdefghijklmnopqrstuvwxyz",加密的规则小写字母是向后移动4位,v变z,w变a,x变b,y变c,z变d,其它不变。只要逐一枚举字符串,算出ASCII码并加上4后得到加密后的字符,同时需要判断一下是否超出字母"z"的ASCII码,超出的需要修正。2026/4/2417六、字符串加密思路2生成循环序列本题可以转化为如何生成循环序列”0,1,2,3···25,0,1···”(该序列每个数加上97就变成小写字母的ASCII码)的问题。本序列的大小为26,因此可以通过模26获得序列。按以下步骤执行:①x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论