数据结构里的串是什么东西?(其实串就是指字符串)
2016-08-13 21:40
916 查看
早先的计算机在被发明时,主要作用是做一些科学和工程的计算工作,也就是现在我们理解的计算器,只不过它比小小计算器功能更强大、速度更快一些。后来发现,在计算机上作非数值处理的工作越来越多,使得我们不得不需要引入对字符的处理。于是就有了字符串的概念。
比如我们现在常用的搜索引擎,当我们在文本框中输入“简明 现代"时,它已经把我们想要的“简明现代魔法”列在下面了(联想词)。显然这里网站作了一个字符串査找匹配的工作:
今天我们就是来研究“串”这样的数据结构。先来看定义。
串(string)是由零个或多个宇符组成的有限序列,又名叫字符串。
一般记为s = "a,a2……an" (n>0),其中,s是串的名称,用双引号(有些书中也用单引号)括起来的字符序列是串的值,注意单引号不属于串的内容。ai(1<= i<= n)可以是字母、数字或其他字符,i就是该字符在串中的位置。串中的字符数目n称为串的长度,定义中谈到“有限”是指长度n是一个有限的数值。零个字符的串称为空串(null string),它的长度为零,可以直接用两双引号一表示,也可以用希腊Φ字母来表示。所谓的序列,说明串的相邻字符之间具有前驱和后继的关系。
还有一些概念需要解释。
空格串,是只包含空格的串。注意它与空串的区别,空格串是有内容有长度的,而且可以不止一个空格。
子串与主串,串中任意个数的连续字符组成的子序列称为该串的子串,相应地,包含子串的串称为主串。
子串在主串中的位置就是子串的第一个字符在主串中的序号。
比如在英语单词中,即使是friend也有个end,即使是believe也有个lie。
这里的"end", "lie"其实可以认为是"friend"、"believe"这些单词字符串的子串。
比起前面说到的链表,串简单吧?先难后易,是一种很好的学习方法。
比如我们现在常用的搜索引擎,当我们在文本框中输入“简明 现代"时,它已经把我们想要的“简明现代魔法”列在下面了(联想词)。显然这里网站作了一个字符串査找匹配的工作:
今天我们就是来研究“串”这样的数据结构。先来看定义。
串(string)是由零个或多个宇符组成的有限序列,又名叫字符串。
一般记为s = "a,a2……an" (n>0),其中,s是串的名称,用双引号(有些书中也用单引号)括起来的字符序列是串的值,注意单引号不属于串的内容。ai(1<= i<= n)可以是字母、数字或其他字符,i就是该字符在串中的位置。串中的字符数目n称为串的长度,定义中谈到“有限”是指长度n是一个有限的数值。零个字符的串称为空串(null string),它的长度为零,可以直接用两双引号一表示,也可以用希腊Φ字母来表示。所谓的序列,说明串的相邻字符之间具有前驱和后继的关系。
一些特别的字符串
还有一些概念需要解释。空格串,是只包含空格的串。注意它与空串的区别,空格串是有内容有长度的,而且可以不止一个空格。
子串与主串,串中任意个数的连续字符组成的子序列称为该串的子串,相应地,包含子串的串称为主串。
子串在主串中的位置就是子串的第一个字符在主串中的序号。
比如在英语单词中,即使是friend也有个end,即使是believe也有个lie。
这里的"end", "lie"其实可以认为是"friend"、"believe"这些单词字符串的子串。
比起前面说到的链表,串简单吧?先难后易,是一种很好的学习方法。
相关文章推荐
- 那是什么鬼东西? Pick!!就是物件拾取!
- 【程序员的操蛋生活之】心里有什么,看见的东西就是什么!
- 成熟是什么?成熟就是喜欢的东西依旧喜欢,但可以不拥有;成熟就是害怕的东西依旧害怕,但可以面对;成熟就是讨厌的东西依旧讨厌,但可以忍受。成熟就是以前觉得难以理喻的事情可以理所当然。
- 晚上写程序的时候就是不知道STDAPI这些东西是搞什么的,分享一下!
- 不要神话创业,什么东西都可以自己做,损失就是不拿工资。如果吃不上饭了,那还是不要创业。服务器很便宜
- Orchard特性路线图(其实就是以后将做什么)
- 【程序员的操蛋生活之】心里有什么,看见的东西就是什么!
- 重构过程其实就是一个“让合适的东西干合适的事情
- 在接触过操作系统和编译原理之后,感觉计算机其实就是在处理一串又一串的字符串
- 把自己当成打工的,一辈子都是打工的(太精彩了,怀着创业的心态,那么你在什么状态都可以叫创业,深入实践与学习就是创业,鼓励创业其实是鼓励创业的精神,成立公司只是一种形式,虚荣心没有意义)
- 到底什么是一个网站的建站流程,其实就是关于网站的大致构造吧
- 超级测评阿里旺旺电话,其实就是个回拨卡.没什么新意~
- 正则表达式其实就是一个特殊的字符串
- rest风格、rest框架、restful,什么意思?这不是一种技术,而是一种概念。rest其实就是动静分离即前后端分离
- 网易宝面试:java程序员(其实我根本不记得我投的是什么了,但是一直问的是java,应该就是java了)
- poj2256人工智能?其实就是字符串处理啦
- 正则表达式其实就是一个特殊的字符串
- 不要听吹牛逼什么前端MVVM框架就是好,其实都是一帮没学好分层设计的搞出来的,让你彻底看清前端MVVM的本质
- 数据库里取出来结果,按照树来排列。 其实就是数据结构中二叉树的先序遍历