会员题

编程入门 行业动态 更新时间:2024-10-27 13:29:48

<a href=https://www.elefans.com/category/jswz/34/1769938.html style=会员题"/>

会员题

有效单词缩写

字符串可以用 缩写 进行表示,缩写 的方法是将任意数量的 不相邻 的子字符串替换为相应子串的长度。例如,字符串 “substitution” 可以缩写为(不止这几种方法):

“s10n” (“s ubstitutio n”)
“sub4u4” (“sub stit u tion”)
“12” (“substitution”)
“su3i1u2on” (“su bst i t u ti on”)
“substitution” (没有替换子字符串)

下列是不合法的缩写:

“s55n” (“s ubsti tutio n”,两处缩写相邻)
“s010n” (缩写存在前导零)
“s0ubstitution” (缩写是一个空字符串)
给你一个字符串单词 word 和一个缩写 abbr ,判断这个缩写是否可以是给定单词的缩写。

子字符串是字符串中连续的非空字符序列。

class Solution {
public:bool validWordAbbreviation(string word, string abbr) {int abbrsize= abbr.size(),wordsize=word.size();//游标,记录当前判断的位置int abbrLen=0; //num记录字母间的数字大小int num=0; for (int i = 0; i < abbrsize; ++i){if (abbr[i]>='a' && abbr[i]<='z'){abbrLen+=num+1; //数字加字母的长度num=0;//越界或者单词对应位置不相同,直接返回falseif (abbrLen>wordsize || abbr[i]!=word[abbrLen-1]) return false;}else{ //遇到了前导0:当前缩写位置上的字符为0,并且num=0if (!num && abbr[i]=='0') return false;num=num*10+abbr[i]-'0'; //连续遇到两个数字,要拼接起来}}return abbrLen+num==wordsize;}
};

更多推荐

会员题

本文发布于:2023-11-15 05:53:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1594806.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:会员

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!