字典序 思路描述:在数据加密和数据压缩中常需要对特殊的字符串进行编码.给定的字母表A 由26 个小写英文字母组成A={a,b,…,z}.该字母表产生的升序字符串是指字符串中字母按照从左到右出
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 20:17:49
字典序 思路描述:在数据加密和数据压缩中常需要对特殊的字符串进行编码.给定的字母表A 由26 个小写英文字母组成A={a,b,…,z}.该字母表产生的升序字符串是指字符串中字母按照从左到右出
字典序 思路
描述:在数据加密和数据压缩中常需要对特殊的字符串进行编码.给定的字母表A 由26 个小写英文字母组成A={a,b,…,z}.该字母表产生的升序字符串是指字符串中字母按照从左到右出现的次序与字母在字母表中出现的次序相同,且每个字符最多出现1 次.例如,a,b,ab,bc,xyz 等字符串都是升序字符串.现在对字母表A 产生的所有长度不超过6 的升序字符串按照字典序排列并编码如下.
1 2 … 26 27 28 … 对应 a b … z ab ac …
对于任意长度不超过6 的升序字符串,迅速计算出它在上述字典中的编码.
编程任务:
对于给定的长度不超过6 的升序字符串,编程计算出它在上述字典中的编码.
Input
输入数据第一行给出一个字符串.
Output
程序运行结束时,将计算结果输出字符串的编码.
Sample Input
a
Sample Output
1
麻烦说说解题思路!不要代码~
字典序 思路描述:在数据加密和数据压缩中常需要对特殊的字符串进行编码.给定的字母表A 由26 个小写英文字母组成A={a,b,…,z}.该字母表产生的升序字符串是指字符串中字母按照从左到右出
首先你要读懂你的题,是要求你在已知的表中找到他对应的位置.
那么你应该知道长度(输入的字符串长度)一旦是1个有效字符(a-z中任何一个)计算的方法都是 - 'a' + 1;(原因是每个字符都是ascll码表示).当长度是2个有效字符(ab-az中的任何一个),计算的方法都是 - 'a' + 2 + (1 + 'z' - 'a') 其中(1 + 'z' - 'a')是长度为1的有效字符总长度.总结上述方法:当长度为N个有效字符时,计算的方法都是
- 'a' + N + ('z' - 'a' + (N-1) ) + ...直到N大于0,归纳后总结可以使用递归,循环等方法,其实代码实现也很简单.这里不写让你自己去练习下