首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

华为oj之字符串最后一个单词长度

题目: 字符串最后一个单词长度 热度指数:9697 时间限制:1秒 空间限制:32768K 本题知识点: 字符串 题目描述 计算字符串最后一个单词长度,单词以空格隔开。...输入描述: 一行字符串,非空,长度小于5000。 输出描述: 整数N,最后一个单词长度。...tpId=37&tqId=21224 分析: 此题又不少解决办法, 下面po出一种解题方案: 从后向前来扫描输入字符串, 然后用状态变量flag来记录当前位是否为空格, 字符串最末尾空格全部跳过,...当遇到第一个非空格字符时改变flag值, 计数器+1, 直到flag状态值为0, 且当前字符是空格时终止循环(break)....注意: 此题输入不能使用cin>>stringvar, cin遇到空格、tab键、换行等均会停止, 不过有getline()函数可以解决此问题.

97020

java字符串练习题6、最后一个单词长度

java字符串练习题6、最后一个单词长度 题目:  给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串最后一个 单词长度。...单词 是指仅由字母组成、不包含任何空格字符最大子字符串。 测试数据: 示例 1: 输入:s = "Hello World" 输出:5 解释:最后一个单词是“World”,长度为5。...示例 3: 输入:s = "luffy is still joyboy" 输出:6 解释:最后一个单词是长度为6“joyboy”。...字符串函数中学了一个函数叫做split,这个函数能将英文语句通过空格方式都拆分出来,他并没有说最后一个结尾是否是符号,所以我们就直接当做一个单词来处理。 ...,再根据最后一个单词下标向左找,只要是空格就结束即可,通过结尾-起始方式就能计算出长度了,这个效率稍微高一些。

87320

看动画轻松理解「Trie树」

顾名思义,它是一个树形结构。它是一种专门处理字符串匹配数据结构,用来解决在一组字符串集合中快速查找某个字符串问题。...还是可以用上面同样方法,从根节点开始,沿着某条路径来匹配,如图所示,绿色路径,是字符串cod匹配路径。但是,路径最后一个节点「d」并不是橙色,并不是单词标志位,所以cod字符串不存在。...删除分支单词 删除整个单词 情况类似,区别点在于删除到 cook 一个 o 时,该节点为非叶子节点,停止删除,这样就完成cook字符串删除操作。...给定一组字符串,查找某个字符串是否出现过,思路就是从根节点开始一个一个字符进行比较: 如果沿路比较,发现不同字符,则表示该字符串在集合中不存在。...如果所有的字符全部比较完并且全部相同,还需判断最后一个节点标志位(标记该节点是否代表一个关键字)。

1.1K20

python高级算法数据结构:“你如何压缩一部英文著作”,一道来自大厂真实面试题

,例如”and”,如果是空心,那么从根节点到路径上字符形成字符串并没有对应存储单词。...,这意味着对应单词没有存储在树中,具体情况如下所示: 从上图看到,要搜索字符串“ant”,我们会一直走到右边空心节点,但是由于空心节点对应字符串没有存储在树中,因此即使从根节点到某个子节点,路径上字符要搜索字符相对应...下面我们看如何单词插入字典树,插入时又得看两种情况,第一是字典树从根节点开始有对应路径形成字符串插入字符串相同,例如我们要把”ant”插入上面的字典树,这时我们只要将对应节点key_node设置成...对于字典树而言,它有一个非常重要功能那就是返回当前存在树中,能与给定字符串形成最长前缀匹配单词。...最后我们再实现一个方法,那就是给定一个字符串,我们返回存在字典树中所有单词

51110

为什么数据结构算法对前端开发很重要

顾名思义,它是一个树形结构。它是一种专门处理字符串匹配数据结构,用来解决在一组字符串集合中快速查找某个字符串问题。...还是可以用上面同样方法,从根节点开始,沿着某条路径来匹配,如图所示,绿色路径,是字符串cod匹配路径。但是,路径最后一个节点「d」并不是橙色,并不是单词标志位,所以cod字符串不存在。...cod匹配路径 Trie树删除操作 Trie树删除操作二叉树删除操作有类似的地方,需要考虑删除节点所处位置,这里分三种情况进行分析: 删除整个单词(比如 hi ) ?...删除分支单词 删除整个单词 情况类似,区别点在于删除到 cook 一个 o 时,该节点为非叶子节点,停止删除,这样就完成cook字符串删除操作。...如果所有的字符全部比较完并且全部相同,还需判断最后一个节点标志位(标记该节点是否代表一个关键字)。

60710

串联所有单词子串----滑动窗口篇八

一旦在滑动窗口内发现不匹配子串,就更新区间,另寻解 这里如何判断当前滑动窗口内所有子串都与words数组完全匹配呢?...我们需要copy一份words数组,如果当前子串scopy数组中某个字符串匹配,那么就将对应字符串从copy数组中删除,然后继续去看区间剩余子串匹配情况。...只有当copy数组中最后元素都被删除时,才表明当前滑动区间满足题意。...vector Words = words; //记录剩余需要匹配个数 int leftNum = words.size(); //测试当前滑动区间内所有单词是否所给字符串匹配...else { //每匹配一个子串,就去对应查找数组中删除已经找到字符串 Words.erase(ret); leftNum--;//当前子串匹配,说明少了一个需要匹配子串

30830

Linux三剑客之grep,awk,sed命令必知必会

显示了特定文件和匹配结果 linuxmi@linuxmi:~/www.linuxmi.com$ grep "linuxmi" * 要仅输出包含匹配模式文件,我们使用“ -l” 如果您知道文件名可以输出所有匹配项...grep "linuxmi" test test1 test2 匹配文件中整个单词。 默认情况下,即使在子字符串中找到了Grep,也会输出所有出现某种特定模式。...linuxmi@linuxmi:~/www.linuxmi.com$ grep -v "linuxmi" linuxmi.txt 匹配某个字符串开头所有字段,例如,输出所有以单词“sat”开头字段...它不需要任何编译,并且用户可以使用数字函数,变量,字符串函数和逻辑运算符。 使您能够以语句形式编写简单有效程序,以在文件中搜索特定模式,并在找到匹配项时执行操作。...linuxmi@linuxmi:~/www.linuxmi.com$ awk '{print}' linuxmi.txt 例如,要打印给定模式匹配行,让我们打印其中包含单词“linuxmi”所有行

9.1K20

字符串匹配算法(Trie树)

Trie树概念 Trie树,也叫字典树,它是一个树形结构。是一种专门处理字符串匹配数据结构,用来解决在一组字符串集合中快速查找某个字符串。...size_t count;//记录这个节点被多少个单词占用 bool isEndOfWord;//是否是一个单词结束字符 size_t freq; //单词插入频次 TrieNode...Trie树散列表、红黑树比较 Trie树对要处理字符串有及其严苛要求。 第一,字符串中包含字符集不能太大。如果字符集太大,那存储空间可能就会浪费很多。...Trie树比较适合是查找前缀匹配字符串,例如搜索引擎智能匹配输入,给出候选提示(如果有多个候选,可以按搜索热度排序,上面代码里面的 frequency)。 ?...如果词库中有很多关键词,在搜索提示时候,用户输入关键词,作为前缀在Trie 树中可以匹配关键词也有很多,如何选择展示哪些内容呢?

1K10

【愚公系列】2023年11月 数据结构(十)-Trie树

链表(Linked List):也是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点引用。链表特点是可以动态地插入或删除节点,但访问某个节点时需要从头开始遍历。...栈(Stack):是一种后进先出(LIFO)数据结构,只能在栈顶进行插入和删除操作。栈通常用于实现递归算法、表达式求值和内存管理等场景。...当插入或搜索一个字符串时,从根节点开始,依次遍历字符串每个字符,如果存在该字符对应子节点,继续向下遍历,否则新建一个子节点,并将指针指向该节点。当遍历完整个字符串后,标记最后一个节点为单词结尾。...如果字符串集合中存在许多相似的字符串,Trie树空间占用会更大。...单词统计:如在一组文本中统计单词出现次数,可以将单词插入到Trie树中,并在每个单词结尾节点记录出现次数。IP地址路由查找:在路由表中查找给定IP地址最长匹配前缀。

26312

这可能是迄今为止最好一篇正则入门教程-上

如果要精确地查找hi这个单词的话,我们应该使用\bhi\b。 \b 是正则表达式规定一个特殊代码(好吧,某些人叫元字符,metacharacter),代表着单词开头或结尾,也就是单词分界处。...虽然通常英文单词是由空格,标点符号或者换行来分隔,但是 \b 并不匹配这些单词分隔字符中任何一个匹配一个位置。 假如你要找是hi后面不远处跟着一个Lucy,你应该用 \bhi\b....下面来看看更多例子: \ba\w*\b匹配以字母a开头单词——先是某个单词开始处(\b),然后是字母a,然后是任意数量字母或数字(\w*),最后单词结束处(\b)。...(或整个字符串一个单词,具体匹配哪个意思得看选项设置) 字符类 要想查找数字,字母或数字,空白是很简单,因为已经有了对应这些字符集合元字符,但是如果你想匹配没有预定义元字符字符集合(比如元音字母...我们也可以轻松地指定一个字符范围,像[0-9]代表含意 \d 就是完全一致:一位数字;同理[a-z0-9A-Z_]也完全等同于\w(如果只考虑英文的话)。 下面是一个更复杂表达式:\(?

93010

Emacs 快捷键

B3 这一命令会设置并突出显示区域,然后无需删除就将其放在 kill 缓冲区中。如果某个区域已经被突出显示并设置,该区域末尾将移动到您单击位置。 B3-B3 这个命令将突出显示区域,然后删除。...如果某个区域已经被突出显示并设置,该区域末尾将移动到您单击位置,此后该区域将被删除。 7. query-replace 函数选项 键(M-%) 描述 空格、y 替换这个匹配。...C-s Enter C-w 单词或者短语 word-search-forward 在整个缓冲区中前向搜索给定单词或者短语(不管它们之间如何分隔)。...C-r Enter C-w 单词或者短语 word-search-backward 在整个缓冲区中后向搜索给定单词或者短语(不管它们之间如何分隔)。...设置EMACS变量 1.有些变量可以包含数值或者字符串,而其他变量则是“真”或者“假”:如果一个变量值设置为 nil ,那么值是“假”,值 t 表示“真”。

2K20

搜索引擎背后数据结构和算法

对于搜索引擎来说,事先并不知道网页都在哪里。那搜索引擎是如何爬取网页呢? 搜索引擎把整个互联网看作 有向图,把每个页面看作一个顶点。...如果某个页面中包含另外一个页面的链接,就在两个顶点之间连一条有向边。利用图遍历搜索算法,来遍历整个互联网中网页。 搜索引擎采用是广度优先搜索策略。...如何解析页面获取链接,可以把整个页面看作一个字符串,利用字符串匹配算法,搜索这样一个网页标签,然后顺序读取之间字符串,就是网页链接。...当找到某个关键词出现位置之后,只需要依次往后遍历,直到对应结束标签(,,)为止。这期间遍历到字符串连带着标签就应该从网页中删除。...涉及数据结构和算法有:图、散列表、Trie树、布隆过滤器、单模式字符串匹配算法、AC自动机、广度优先遍历、归并排序等。 如果有时间,自己写代码实现一个简单搜索引擎。

1.1K10

字典树简介

最后,在字符串最后一个字符所对应节点上,设置一个标记,表示该节点代表一个字符串结尾。...下面是字典树删除操作步骤: 从根节点开始,依次取出要删除字符串每个字符,搜索到该字符串最后一个字符所在节点。 删除该节点上标记位(如果存在),表示该节点不再代表一个完整字符串。...在字符串最后一个字符所对应节点上,检查是否设置了标记,如果设置了,则说明要查找字符串存在于字典树中,返回成功;否则,说明该节点代表某个前缀而不是一个完整字符串,返回失败。...主要性质包括从根节点到某个节点路径上字符连接起来即为该节点所表示字符串,每个节点所有子节点所表示字符串都不相同,以及字典树中每个节点都可以代表一个字符串。...字典树可以被广泛应用于字符串检索和匹配问题,并且支持插入、删除和查找三种基本操作。

83030

正则表达式30分钟入门教程

下面来看看更多例子: \ba\w*\b匹配以字母a开头单词——先是某个单词开始处( \b),然后是字母 a,然后是任意数量字母或数字( \w*),最后单词结束处( \b)。...这个表达式首先是一个单词,也就是单词开始处和结束处之间多于一个字母或数字 (\b(\w+)\b),这个单词会被捕获到编号为1分组中,然后是1个或几个空白符 (\s+),最后是分组1中捕获内容(也就是前面匹配那个单词...但是如果我们只是想要确保某个字符没有出现,但并不想去匹配时怎么办?...这是因为 [^u]总要匹配一个字符,所以如果q是单词最后一个字符的话,后面的 [^u]将会匹配q后面的单词分隔符(可能是空格,或者是句号或其它什么),后面的 \w*\b将会匹配一个单词,于是 \b...=)匹配不包含属性简单HTML标签内里内容。 (?)指定了这样前缀:被尖括号括起来单词(比如可能是 ),然后是 .*(任意字符串),最后一个后缀 (?

95330
领券