首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多词字形检验器

多词字形检验器
EN

Stack Overflow用户
提问于 2016-01-31 11:08:16
回答 1查看 137关注 0票数 0

我的任务是扩展我当前的代码(从用户的输入中提取两个单词,并检查它们是否为字形)。

该代码接受用户的输入,然后一次一个单词填充一个数组。如果数组在末尾匹配,那么它们就是变形词。

代码语言:javascript
复制
int check(char a[], char b[])
{
    int first[26] = { 0 }, second[26] = { 0 }, c = 0;

    while (a[c] != '\0')
    {
        first[a[c] - 'a']++;
        c++;
    }

    c = 0;

    while (b[c] != '\0')
    {
        second[b[c] - 'a']++;
        c++;
    }

    for (c = 0; c < 26; c++)
    {
        if (first[c] != second[c])
            return 0;
    }

    return 1;
}

我现在的困境是,我不知道如何做"20个单词的部分“。

我们应该将这20个单词(例如"art“、"tar”、"cat“、”胖“、"dat”、"ats")放入一个数组中。然后我们获取另一个数组,并将其设置为唯一单词的数量,即第一个单词。

例如:"art“和"cat”是唯一的,但如果包括"tar",那么"tar“就不是唯一的。

它将计算作为唯一单词的字形的单词的数量,然后在最后显示成组的字形的所有单词。

要做到这一点,我怀疑我之前的代码将不得不更改一大堆,而我不知道从哪里开始。

EN

回答 1

Stack Overflow用户

发布于 2016-01-31 11:32:46

您可以从您的频率数组重新生成一个单词,它将是唯一的。

这些可以简单地按字母顺序排序。例如:-

tar :艺术

rat :艺术

或者你可以用字母来编码频率:-

tar : 1a1r1t (1 'a',1 'r‘和1 't’)

苹果: 1a1e1l2p

现在,您可以将这些生成的单词放在一个数组中并检查重复项,也可以使用一个set来获取唯一计数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35109887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档