leetcode408有效单词缩写

在这里插入图片描述
思路

  1. 首先要统计字符串中的数字,而且不可从0开始
  2. 数字是跳过的字符数量
    (1)跳超出范围不可
    (2)跳了之后字母对不上不可
  3. 必须最后的数值与字符串长度一致

代码

bool validWordAbbreviation(char * word, char * abbr){
    int lw = strlen(word),la = strlen(abbr);
    printf("lw = %d la = %d \n",lw,la);
    int i=0,j=0,temp;
    while (i<la)
    {
        if(j>lw)
        {
            return false;
        }
            
        if(isalpha(abbr[i])){//字母
            if(abbr[i]!=word[j]){
                return false;
            }
            else i++;j++;
                
        }
        else {//数字
            if(abbr[i]=='0'){
                return false;
            }
            else {
                temp = 0;
                while (!isalpha(abbr[i])&&i<la)
                {
                    temp = temp*10 + abbr[i] - '0';
                    i++;
                }
                j = j + temp;
            }   

        }
            

    }
    if(j!=lw){
        return false;
    }
        
    return true; 
    
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值