字符易位破译

编程入门 行业动态 更新时间:2024-10-23 10:20:30

<a href=https://www.elefans.com/category/jswz/34/1771063.html style=字符易位破译"/>

字符易位破译

编写一个函数,检查两个单词是否是字母易位词。两个单词如果包含相同的字母,次序不同,则称为字母易位词。例如:“silent”和“listen”是字母易位词。
提示:先对单词进行排序,再进行比较
如果用数组来保存输入的单词的话我不知道怎样判断单词的字母数(C++刚学)。最难下手的是字母排序问题。

 

 

不需要排序的方法:
bool func(const char *word1, const char *word2)
{
    char alpha1[26] = {0};
    char alpha2[26] = {0};
    int i = 0;
   
    while (*word1)
    {
        alpha1[(*word1 | 0x20) - 'a']++;
        word1++;
    }
    while (*word2)
    {
        alpha2[(*word2 | 0x20) - 'a']++;
        word2++;
    }
    for (; i < 26; i++)
    {
        if (alpha1[i] != alpha2[i])
            return false;
    }
    return true;
}

 

 

 

 

#include <algorithm> #include <iostream>
#include <string>
using namespace std;

bool is_anagram (std::string x, std::string y)
{
std::sort(x.begin(), x.end());
std::sort(y.begin(), y.end());
return x == y;
}

int main (int, char**)
{
cout << is_anagram("silent", "listen") << endl; // 1
cout << is_anagram("silent", "lesson") << endl; // 0
return 0;
}

 

 

 

更多推荐

字符易位破译

本文发布于:2024-03-12 05:26:46,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1730793.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字符

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!