大家好,欢迎来到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