解题思路
这道题的关键是不要真的去构造解密后的字符串,而是直接统计长度变化。
根据题意:
- 若当前字符是元音字母,则解密后仍然只对应 1 个字符,所以长度增加量为 0
- 若当前字符是辅音字母,则会被解成 3 个字符,所以相对于原来 1 个字符,长度增加量为 2
P4775.第2题-解密之破解密文(二)
题目内容
飞行员牛牛近日收到一份密电;密文是仅由一行小写字母构成;牛牛想要破解该密文;但是由于密文太长了,因此,他想请你来帮忙破解该密文;已知密码破解规则如下:
1.辅音字母本身;
2.在字母表中最接近该辅音字母的元音字母,若该辅音字母正好落于两个元音字母之间,那么将选择更接近字母表开头的元音字母;若辅言字母为 'c',则将选择
元音字母 'a'而不是 'e';
3.字母表中原始辅音字母之后的下一个辅音字母;若该字母为 d 则,将选择下一个辅音字母 'f' 注意:z 的下一个辅音字母是他本身。
例如:密文 nowcoder 的明文是 nopowuxcadodeferos:由于破解后的明文太过冗长,牛牛想知道明文的长度比密文长多少?
现在给你一行字符串,请你输出明文比密文长多少;
输入描述
一行中给出一行字符串;
1≤len(str)≤105
输出描述
请你输出明文比密文长多少
补充说明
元音字母为:aeiou
辅音字母为:bcdfghjklmnpqrstvwxyz
样例1
输入
nowcoder
输出
10
说明
破解后的明文为 nopowuxcadodeferos,长度为 18 ,比 nowcoder 长 10;
样例2
输入
china
输出
6