public static String basicEncrypt(String s) {
    String toReturn = "";
    for (int j = 0; j < s.length(); j++) {
        toReturn += (int)s.charAt(j);
    }
    //System.out.println("Encrypt: " + toReturn);
    return toReturn;
}


有什么办法可以反向查找原始字符串吗?非常感激。

最佳答案

在仅使用ASCII字符(32-255码)的假设下,该算法很简单:


输入输入的第一个字符
如果是12-截取下两位数字并转换为字符
如果是其他字符,请截取下一位并转换为字符
如果还有一些输入,请转到1。


这是一个快速的脏Scala实现:

def decrypt(s: String): String = s.headOption match {
    case None => ""
    case Some('1') | Some('2') => s.substring(0, 3).toInt.toChar + decrypt(s.substring(3))
    case Some(_) => s.substring(0, 2).toInt.toChar + decrypt(s.substring(2))
}

07-24 09:46