- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想生成给定字符串的所有辅音。
Consonance is a stylistic literary device identified by the repetition of identical or similar consonants in neighboring words whose vowel sounds are different. (Wikipedia)
A consonant是字母表中的一个字母,表示辅音。下表吸收了英语辅音组,采用以下便利使事情简单(istic):
我们还假设符合情况 2 和 3 的输入是允许的,应该简单地忽略。但是,如果输入符合情况 1 或不符合情况 4,则输入无效(请参见下面的示例)。
所以:
var consonants = [
['b', 'p'],
['c', 's', 'z'],
['d', 't'],
['f', 'v'],
['g', 'j'],
['k', 'q']
];
例如,给定字符串"jedi"
,输出应该是:
var consonances = ["gedi", "jeti", "geti"]
请注意,“e”和“i”——元音(第 2 种情况)——可以作为输入。
其他一些例子:
"btb" --> ["ptb", "pdb", "pdp", "bdb", "bdp", "btp", "ptp"]
"star" --> ["ctar", "ztar", "sdar", "cdar", "zdar"]
无效输入:
“show”、“chair”、“high”、“the”
“sure”、“cat”、“good”
我在试图找到接近它的方法时碰壁了。我经历了排列问题,因为我猜它们可能与这里相关,但我不知道如何在这里应用这样的解决方案。
我需要一个算法,但当然,完整的代码解决方案会更好。我将在此处添加我目前剩下的内容(JS 代码):
const irrelvant = ['a', 'e', 'i', 'o', 'u', 'h', 'y', 'w', 'x'];
function isConsonant(c) {
return !irrelvant.includes(c);
}
function getConsonants(c) {
let curConsonants = [];
consonants.every((group) => {
if (group.includes(c)) {
curConsonants = group;
};
return !curConsonants.length;
});
return curConsonants;
}
最佳答案
我建议在 map 中组织相关的辅音:
var consonants = {
"b": "p",
"p": "b",
"c": "sz",
"s": "cz",
"z": "cs",
"d": "t",
"t": "d",
"f": "v",
"v": "f",
"g": "j",
"j": "g",
"k": "q",
"q": "k",
];
现在您可以逐个字符地迭代字符串。如果您在映射中命中一个字符,请考虑将映射字符串中的每个字符插入到 pos 处的已更改单词(除了您仍然执行的未更改的递归之外)。伪代码:
function generate(word, pos) {
if (pos == word.length) {
console.log(word);
return;
}
generate(word, pos + 1);
mapped = consonants[word.charAt(pos)];
if (mapped != null) {
var prefix = word.substring(0, pos);
var suffix = word.substring(pos + 2);
for (var i = 0; i < mapped.length; i++) {
var changed = prefix + mapped.charAt(i) + suffix;
geneate(changed, pos + 1);
}
}
}
关于javascript - 生成字符串的所有辅音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52505840/
我正在努力思考如何在句子中表示辅音。我刚才使用的代码似乎无法完成这项工作: vowels = ("aeiou") count = 0 for x in text: if not x in vo
我想为特定的辅音/元音设置生成所有可能的排列。例如,我想要所有可能的 3 字母单词排列,格式为 CVC(辅音、元音、辅音)。 我不知道有什么方法可以乘以排列: permutations("bcdfgh
在问题中,我们得到了 2 个字符串,我们必须数数。元音,没有。辅音并单独显示每个字符串的乘积。 预期输出2 6 120 7 0 输出获取0 0 02 6 12 这是代码- import java.io
我正在尝试计算一个字符串中有多少个元音/辅音/数字/其他符号。 #include #include int main(void) { int cons = 0, vow = 0, num
我确信这很简单,但我是一个完全的初学者。我正在尝试制作一个工具,其中有一个字符串并搜索 'n' + [任何辅音] 并将其替换为该辅音的两倍 - 例如 aaanq -> aaaqq。 我唯一能想到的是,
尝试学习 Python 中的正则表达式以查找具有连续元音-辅音或辅音-元音组合的单词。我将如何在正则表达式中执行此操作?如果无法在 Regex 中完成,是否有一种在 Python 中执行此操作的有效方
我是一名优秀的程序员,十分优秀!