华为OD面试中的字符串编码校验:Java实现详解

题目描述

有一种校验码机制,用于数据传输中的数据完整性检查,规则如下:

  • 在字符串中插入一些数字作为校验码,每个数字之后跟随对应个数的字符;
  • 要求有校验码(校验码大于零并且无前导零),并且正确匹配、无歧义:如,”helloworld” 在插入校验码之后可以为 “5hello5world”,即 5 + “hello” + 5 + “world”;
  • 但是,有些字符串在进行校验时会产生歧义,比如 “109something” 可以校验为 10 + “9something” 或者 1 + “0” + 9 + “something”,故这类编码方式是有歧义的。

    现给出一个字符串 encodedString,请判断这个字符串是否符合上述规则:

  • 如果是,则返回去掉校验码后的字符串长度;
  • 如果不是,则返回 -1。
  •  

    输入描述

     

    输出描述

     

    用例

    输入 9computer012
    输出 10

    作者:伏城之外

    物联沃分享整理
    物联沃-IOTWORD物联网 » 华为OD面试中的字符串编码校验:Java实现详解

    发表回复