java - 解码图像的所有可能方法
问题描述
包含从“A”到“Z”的大写字母的绝密消息已使用以下映射编码为数字:
'A' -> 1 'B' -> 2 ... 'Z' -> 26 您是一名 FBI 特工,您需要确定可以解码消息的方式总数。
由于答案可能非常大,因此取模 10^9 + 7。
例子
对于 message = "123",输出应为 mapDecoding(message) = 3。
“123”可以解码为“ABC”(1 2 3)、“LC”(12 3)或“AW”(1 23),所以总路数为3。
我找到了这两个解决方案,但我无法理解其中的任何一个以及使用的方程式
int mapDecoding(String m) {
for (var e : m.getBytes())
k = v / 49 * 554 / (v * 10 + e) * c + (v = e) / 49 * (c = k %= 1e9 + 7);
return k;
}
int c, v, k = 1;
第二种解决方案
int a, b = 1, c;
int mapDecoding(String m){
for(int d : m.getBytes())
b = 63/(c%49*9+d)*a + (c=d)/49 * (a=b%=1e9+7);
return b;
}
任何人都可以帮忙吗?
解决方案
推荐阅读
- html - Perfect app 中 webroot 的位置(用于 css 文件)
- python - 如何使用 python 抓取业务电子邮件联系人?
- html - 如何覆盖 Internet Explorer 字体真棒图标的拉右宽度?
- cryptography - 使用加密构建的 yaws 无法启动
- ftp - TidFTP 下载不同大小
- c++ - 在 C++ 中覆盖或更改 ExitProcess 函数
- javascript - JavaScript 中 Uint8Array 到 Short int 的转换导致负数
- c# - 如何 ILEmit 来自另一个 DLL 的函数?
- sql - Sql查询与“列表”表连接的表的ID
- r - 使用 {pegas} 绘制单倍型网络时出现问题