2

以前的开发人员使用该网站的源代码来创建 URL 缩短器。我的主要任务是将这段代码翻译成 ruby​​:

function getIDFromShortenedURL1 ($string, $base = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
{
    $length = strlen($base);
    $size = strlen($string) - 1;
    $string = str_split($string);

    $out = strpos($base, array_pop($string));

    foreach($string as $i => $char)
    {
        $out += strpos($base, $char) * pow($length, $size - $i);
    }
    return $out;
}

我是 ruby​​ 新手,任何帮助将不胜感激:)

4

1 回答 1

3

这基本上相当于 PHP 代码的直接端口。

def getIDFromShortenedURL1(string, base = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
  length = base.length         # $length = strlen($base);
  size   = string.length - 1   # $size   = strlen($string) - 1;
  string = string.split ''     # $string = str_split($string);

  out = base.index string.pop  # $out = strpos($base, array_pop($string));

  string.each_with_index do |char, i|  # foreach($string as $i => $char);
    # $out += strpos($base, $char) * pow($length, $size - $i);
    out << base.index(char) * (length ** (size - i))
  end
  out # return $out;
end

可以在https://gist.github.com/941152找到非常基本测试的代码(以确保功能相同) 。

于 2011-04-25T20:30:18.397 回答