题目描述 计算字符串最后一个单词的长度,单词以空格隔开。 输入描述: 一行字符串,非空,长度小于5000。 输出描述: 整数N,最后一个单词的长度。...示例1 输入 复制 hello world 输出 复制 5 分析:输出字符串长度用len方法;输出最后一个字符串--将字符串变成列表然后用切片[::-1] 代码: str = input()
//计算字符串最后一个单词的长度,单词以空格隔开。
题目: 字符串最后一个单词的长度 热度指数:9697 时间限制:1秒 空间限制:32768K 本题知识点: 字符串 题目描述 计算字符串最后一个单词的长度,单词以空格隔开。...输入描述: 一行字符串,非空,长度小于5000。 输出描述: 整数N,最后一个单词的长度。...tpId=37&tqId=21224 分析: 此题又不少解决办法, 下面po出一种解题方案: 从后向前来扫描输入的字符串, 然后用状态变量flag来记录当前位是否为空格, 字符串最末尾的空格全部跳过,...当遇到第一个非空格的字符时改变flag的值, 计数器+1, 直到flag的状态值为0, 且当前字符是空格时终止循环(break)....注意: 此题的输入不能使用cin>>stringvar, cin遇到空格、tab键、换行等均会停止, 不过有getline()函数可以解决此问题.
题目描述 计算字符串最后一个单词的长度,单词以空格隔开。 输入描述: 一行字符串,非空,长度小于5000。 输出描述: 整数N,最后一个单词的长度。
描述 计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾) 输入描述: 输入一行,代表要计算的字符串,非空,长度小于5000。...输出描述: 输出一个整数,表示输入字符串最后一个单词的长度。...示例1 输入: hello nowcoder 输出: 8 说明: 最后一个单词为nowcoder,长度为8 分析 先将字符串根据空格切割, 然后计算切割后的数组最后一项的长度 代码 const str
输入一个字符串,以回车结束(字符串长度不超过 100100)。 该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。...现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。 输入格式 输入共 33 行。...第 11 行是包含多个单词的字符串 ss; 第 22 行是待替换的单词 aa(长度不超过 100100); 第 33 行是 aa 将被替换的单词 bb(长度不超过 100100)。...输出格式 共一行,输出将 ss 中所有单词 aa 替换成 bb 之后的字符串。
java字符串练习题6、最后一个单词的长度 题目: 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。...单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 测试数据: 示例 1: 输入:s = "Hello World" 输出:5 解释:最后一个单词是“World”,长度为5。...示例 3: 输入:s = "luffy is still joyboy" 输出:6 解释:最后一个单词是长度为6的“joyboy”。...字符串函数中学了一个函数叫做split,这个函数能将英文语句通过空格的方式都拆分出来,他并没有说最后一个结尾是否是符号,所以我们就直接当做一个单词来处理。 ...,再根据最后一个单词的下标向左找,只要是空格就结束即可,通过结尾-起始的方式就能计算出长度了,这个效率稍微高一些。
华为机试 字符串最后一个单词的长度 计算字符串最后一个单词的长度,单词以空格隔开。...tpId=37&tqId=21224 参与人数:2504 时间限制:1秒 空间限制:32768K 本题知识点: 字符串 输入描述: 一行字符串。 输出描述: 整数N,最后一个单词的长度。...for(int i=str.length()-1;i>=0;--i) { if(flag && str[i] ==' ') continue; // 如果末尾有空格...(3) size_t find (const char* s, size_t pos, size_t n) const; //查找对象--字符串的前n个字符 (4) size_t find (char...c, size_t pos = 0) const; //查找对象--字符 结果:找到 -- 返回 第一个字符的索引 没找到--返回 string::npos assign(c1,
顾名思义,它是一个树形结构。它是一种专门处理字符串匹配的数据结构,用来解决在一组字符串集合中快速查找某个字符串的问题。...还是可以用上面同样的方法,从根节点开始,沿着某条路径来匹配,如图所示,绿色的路径,是字符串cod匹配的路径。但是,路径的最后一个节点「d」并不是橙色的,并不是单词标志位,所以cod字符串不存在。...删除分支单词 与 删除整个单词 情况类似,区别点在于删除到 cook 的第一个 o 时,该节点为非叶子节点,停止删除,这样就完成cook字符串的删除操作。...给定一组字符串,查找某个字符串是否出现过,思路就是从根节点开始一个一个字符进行比较: 如果沿路比较,发现不同的字符,则表示该字符串在集合中不存在。...如果所有的字符全部比较完并且全部相同,还需判断最后一个节点的标志位(标记该节点是否代表一个关键字)。
,例如”and”,如果是空心,那么从根节点到它路径上字符形成的字符串并没有对应存储的单词。...,这意味着对应单词没有存储在树中,具体情况如下所示: 从上图看到,要搜索字符串“ant”,我们会一直走到右边空心节点,但是由于空心节点对应的字符串没有存储在树中,因此即使从根节点到某个子节点,路径上的字符与要搜索的字符相对应...下面我们看如何将单词插入字典树,插入时又得看两种情况,第一是字典树从根节点开始有对应路径形成的字符串与插入字符串相同,例如我们要把”ant”插入上面的字典树,这时我们只要将对应节点的key_node设置成...对于字典树而言,它有一个非常重要功能那就是返回当前存在树中的,能与给定字符串形成最长前缀匹配的单词。...最后我们再实现一个方法,那就是给定一个字符串,我们返回存在字典树中的所有单词。
顾名思义,它是一个树形结构。它是一种专门处理字符串匹配的数据结构,用来解决在一组字符串集合中快速查找某个字符串的问题。...还是可以用上面同样的方法,从根节点开始,沿着某条路径来匹配,如图所示,绿色的路径,是字符串cod匹配的路径。但是,路径的最后一个节点「d」并不是橙色的,并不是单词标志位,所以cod字符串不存在。...cod的匹配路径 Trie树的删除操作 Trie树的删除操作与二叉树的删除操作有类似的地方,需要考虑删除的节点所处的位置,这里分三种情况进行分析: 删除整个单词(比如 hi ) ?...删除分支单词 与 删除整个单词 情况类似,区别点在于删除到 cook 的第一个 o 时,该节点为非叶子节点,停止删除,这样就完成cook字符串的删除操作。...如果所有的字符全部比较完并且全部相同,还需判断最后一个节点的标志位(标记该节点是否代表一个关键字)。
一旦在滑动窗口内发现不匹配的子串,就更新区间,另寻解 这里如何判断当前滑动窗口内的所有子串都与words数组完全匹配呢?...我们需要copy一份words数组,如果当前子串s与copy数组中某个字符串匹配,那么就将对应的字符串从copy数组中删除,然后继续去看区间剩余子串匹配情况。...只有当copy数组中最后元素都被删除时,才表明当前滑动区间满足题意。...vector Words = words; //记录剩余需要匹配的个数 int leftNum = words.size(); //测试当前滑动区间内的所有单词是否与所给字符串匹配...else { //每匹配完一个子串,就去对应的查找数组中删除已经找到的字符串 Words.erase(ret); leftNum--;//当前子串匹配,说明少了一个需要匹配的子串
它显示了特定的文件和匹配结果 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”的所有行
Trie树概念 Trie树,也叫字典树,它是一个树形结构。是一种专门处理字符串匹配的数据结构,用来解决在一组字符串集合中快速查找某个字符串。...size_t count;//记录这个节点被多少个单词占用 bool isEndOfWord;//是否是一个单词的结束字符 size_t freq; //单词插入的频次 TrieNode...Trie树与散列表、红黑树的比较 Trie树对要处理的字符串有及其严苛的要求。 第一,字符串中包含的字符集不能太大。如果字符集太大,那存储空间可能就会浪费很多。...Trie树比较适合的是查找前缀匹配的字符串,例如搜索引擎智能匹配输入,给出候选提示(如果有多个候选,可以按搜索热度排序,上面代码里面的 frequency)。 ?...如果词库中有很多关键词,在搜索提示的时候,用户输入关键词,作为前缀在Trie 树中可以匹配的关键词也有很多,如何选择展示哪些内容呢?
链表(Linked List):也是一种线性数据结构,它由一系列的节点组成,每个节点包含数据和指向下一个节点的引用。链表的特点是可以动态地插入或删除节点,但访问某个节点时需要从头开始遍历。...栈(Stack):是一种后进先出(LIFO)的数据结构,它只能在栈顶进行插入和删除操作。栈通常用于实现递归算法、表达式求值和内存管理等场景。...当插入或搜索一个字符串时,从根节点开始,依次遍历字符串的每个字符,如果存在该字符对应的子节点,继续向下遍历,否则新建一个子节点,并将指针指向该节点。当遍历完整个字符串后,标记最后一个节点为单词结尾。...如果字符串集合中存在许多相似的字符串,Trie树的空间占用会更大。...单词统计:如在一组文本中统计单词出现的次数,可以将单词插入到Trie树中,并在每个单词的结尾节点记录出现的次数。IP地址的路由查找:在路由表中查找与给定IP地址最长匹配的前缀。
如果要精确地查找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(如果只考虑英文的话)。 下面是一个更复杂的表达式:\(?
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 表示“真”。
对于搜索引擎来说,它事先并不知道网页都在哪里。那搜索引擎是如何爬取网页的呢? 搜索引擎把整个互联网看作 有向图,把每个页面看作一个顶点。...如果某个页面中包含另外一个页面的链接,就在两个顶点之间连一条有向边。利用图的遍历搜索算法,来遍历整个互联网中的网页。 搜索引擎采用的是广度优先搜索策略。...如何解析页面获取链接,可以把整个页面看作一个大的字符串,利用字符串匹配算法,搜索这样一个网页标签,然后顺序读取之间的字符串,就是网页链接。...当找到某个关键词出现的位置之后,只需要依次往后遍历,直到对应结束标签(,,)为止。这期间遍历到的字符串连带着标签就应该从网页中删除。...涉及的数据结构和算法有:图、散列表、Trie树、布隆过滤器、单模式字符串匹配算法、AC自动机、广度优先遍历、归并排序等。 如果有时间,自己写代码实现一个简单的搜索引擎。
最后,在字符串的最后一个字符所对应的节点上,设置一个标记,表示该节点代表一个字符串的结尾。...下面是字典树的删除操作步骤: 从根节点开始,依次取出要删除的字符串中的每个字符,搜索到该字符串最后一个字符所在的节点。 删除该节点上的标记位(如果存在),表示该节点不再代表一个完整的字符串。...在字符串的最后一个字符所对应的节点上,检查是否设置了标记,如果设置了,则说明要查找的字符串存在于字典树中,返回成功;否则,说明该节点代表的是某个前缀而不是一个完整的字符串,返回失败。...它的主要性质包括从根节点到某个节点路径上的字符连接起来即为该节点所表示的字符串,每个节点的所有子节点所表示的字符串都不相同,以及字典树中的每个节点都可以代表一个字符串。...字典树可以被广泛应用于字符串检索和匹配问题,并且它支持插入、删除和查找三种基本操作。
下面来看看更多的例子: \ba\w*\b匹配以字母a开头的单词——先是某个单词开始处( \b),然后是字母 a,然后是任意数量的字母或数字( \w*),最后是单词结束处( \b)。...这个表达式首先是一个单词,也就是单词开始处和结束处之间的多于一个的字母或数字 (\b(\w+)\b),这个单词会被捕获到编号为1的分组中,然后是1个或几个空白符 (\s+),最后是分组1中捕获的内容(也就是前面匹配的那个单词...但是如果我们只是想要确保某个字符没有出现,但并不想去匹配它时怎么办?...这是因为 [^u]总要匹配一个字符,所以如果q是单词的最后一个字符的话,后面的 [^u]将会匹配q后面的单词分隔符(可能是空格,或者是句号或其它的什么),后面的 \w*\b将会匹配下一个单词,于是 \b...=)匹配不包含属性的简单HTML标签内里的内容。 (?)指定了这样的前缀:被尖括号括起来的单词(比如可能是 ),然后是 .*(任意的字符串),最后是一个后缀 (?
领取专属 10元无门槛券
手把手带您无忧上云