gpt4 book ai didi

algorithm - 给出了随机顺序的一串数字,你必须以十进制格式严格降序打印它们

转载 作者:行者123 更新时间:2023-12-05 09:04:08 25 4
gpt4 key购买 nike

示例:nieignhtesevfouenr答:9874

有人请回答这个问题。谢谢。

最佳答案

你可以应用这个算法:

  • 首先计算输入字符串中每个字母的出现次数。例如,示例输入字符串出现以下情况:

    {
    "e": 4,
    "f": 1,
    "g": 1,
    "h": 1,
    "i": 2,
    "n": 3,
    "o": 1,
    "r": 1,
    "s": 1,
    "t": 1,
    "u": 1,
    "v": 1,
    "w": 0,
    "x": 0,
    "z": 0
    }

    我还包含了未使用的字母,因为它们会在“二”、“六”和“零”中发挥作用,但在此示例输入中未表示。

现在我们可以观察到:

  • 输入中的每一个“z”都属于一个“零”;
  • 每个“w”都属于一个“two”;
  • 每个“u”都属于一个“四”;
  • 每个“x”都属于一个“6”;
  • 每个“g”都属于一个“8”

如果你找到输入字符串中“z”的次数,你可以减去“zero”的出现次数,你可以从“z”、“e”、“r”和“z”中减去那个次数“哦”。应该为输出记录那么多“0”。

完成上述操作后,我们可以继续执行以下操作:

  • 每个剩余“o”都属于一个“一”(因为此时所有“零”、“二”、“四”都已经被计算在内)。
  • 每个剩下的“h”属于一个“三”
  • 剩下的每个“f”都属于一个“5”
  • 剩下的每一个“s”都属于一个“七”

在考虑了这些之后,我们最终可以得出结论:

  • 剩下的每个“i”都属于一个“nine”

我们可以稍微简化一下,因为有些字母在决定代表哪些数字方面并没有真正发挥作用。例如,在上面的逻辑中,我们不关心“n”或“e”的数量,所以当我们检测到“one”时,我们不妨不减少它们的数量,......等。上面列出了我们关心的仅有的 10 个字母。

最后,我们使用每个数字的计数来构建排序后的字符串。

这是 JavaScript 中的一个实现。它运行示例输入的算法。没有输入验证...假定为数字名称的有效组合:

// reference data. The identifying letter is put at the front, 
// and the letters that still matter for another digit
// follow it.
let map = [
["zo", "0"],
["wo", "2"],
["ufo", "4"],
["xis", "6"],
["gih", "8"],
["o", "1"],
["h", "3"],
["fi", "5"],
["s", "7"],
["i", "9"]
];

// The algorithm
function decimals(s) {
// Count occurrences of letters
let charCount = {};
for (let c of "efghinorstuvwxz") charCount[c] = 0;
for (let c of s) charCount[c]++;
// Recognise digits by their identifying letter
let digitCount = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
for (let [name, digit] of map) {
let frequency = charCount[name[0]];
for (let letter of name) charCount[letter] -= frequency;
digitCount[digit] = frequency;
}
// Build the result string
let result = "";
for (let digit of "9876543210") result += digit.repeat(digitCount[digit]);
return result;
}

// Example run
let result = decimals("nieignhtesevfouenr");
console.log(result);

关于algorithm - 给出了随机顺序的一串数字,你必须以十进制格式严格降序打印它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68962820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com