华为OD机试(C卷+D卷)2024真题目录(Java & c++ & python)
题目描述
有一种校验码机制,用于数据传输中的数据完整性检查,规则如下:
在字符串中插入一些数字作为校验码,每个数字之后跟随对应个数的字符;
要求有校验码(校验码大于零并且无前导零),并且正确匹配、无歧义:如,“helloworld” 在插入校验码之后可以为 “5hello5world”,即 5 + “hello” + 5 + “world”;
但是,有些字符串在进行校验时会产生歧义,比如 “109something” 可以校验为 10 + “9something” 或者 1 + “0” + 9 + “something”,故这类编码方式是有歧义的。
现给出一个字符串 encodedString,请判断这个字符串是否符合上述规则:
如果是,则返回去掉校验码后的字符串长度;
如果不是,则返回 -1。
输入描述
无
输出描述
无
用例1
输入 9computer012
输出 10
说明 只可以解析为 9 + “computer0” + 1 + “2”,可以正确匹配(校验码与随后字符个数相同)且无歧义。