假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码…

假定一种编码的编码范围是a ~ y的25个字母,从1位到4位的编码…本文深入探讨了编码算法的工作原理 特别是在处理不同长度字符串时的累加计算过程

大家好,欢迎来到IT知识分享网。

编码_牛客网

在这里插入图片描述

编码范围依次累加,所以需要计算的是累加过程中,该字符串之前有多少个字符串。如果觉得题目不好理解,可以先考虑长度为2,长度为3的情况,自己画一下应该就明白了。

题目中可能的字符串长度有:1,2,3,4。

所以可以按照长度对字符串进行分类,对于例子 “bbca”:

我们现在需要计算该编码方法中,排在它前面的字符串有多少个,假设是 y 个,进一步假设这 y 个字符串中,分别有 y1, y2, y3, y4个长度分别为1,2,3,4的字符串。

参考:TX2017秋招笔试题之编码 – 左岸繁华右岸殇 – 博客园
在这里插入图片描述

也可以看这儿的分析:2017腾讯校招在线编程—-编码_小土豆啊的博客-CSDN博客

#include <bits/stdc++.h> using namespace std; int main(){ string s; cin >> s; int res = 0; for(int i = 0; i < s.size(); ++i){ int tmp = 0; for(int j = 0; j < 4-i; ++j){ tmp += pow(25, j); } res += (s[i] - 'a')*tmp; //每一轮循环都要加一下res //因为要考虑自身 // ++res; } cout << res-1 << endl; return 0; } 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/158324.html

(0)
上一篇 2025-01-24 20:00
下一篇 2025-01-24 20:05

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信