航电oj1113

复制代码
#include <iostream>
#include <string.h>
#include <queue>

using namespace std;

struct node
{
    int aim[26];
    int len;
};
int main()
{
    int dic[101][27]={0},len,i,j;
    //int aim[26]={0};
    queue<node> q;
    priority_queue<string,vector<string>,greater<string> > q_str;
    string temp;
    string strDic[101];
    i=0;
    while(cin>>temp && temp!="XXXXXX")
    {
        strDic[i]=temp;
        len=temp.size();
        dic[i][26]=len;
        for(j=0;j<len;j++)
        {
            dic[i][temp[j]-'a']++;
        }
        i++;
    }

    while(cin>>temp && temp!="XXXXXX")
    {
        node p;
        memset(p.aim,0,sizeof(p.aim));
        p.len=temp.size();
        for(j=0;j<p.len;j++)
        {
            p.aim[temp[j]-'a']++;
        }
        q.push(p);
    }

    while(!q.empty())
    {
        node p = q.front();
        q.pop();
        int n=0;
        for(j=0;j<i;j++)
        {
            if(dic[j][26] == p.len)
            {
                bool flag=true;
                for(int k=0;k<26;k++)
                {
                    if(dic[j][k] != p.aim[k])
                    {
                        flag=false;
                        break;
                    }
                }
                if(flag)
                {
                    //cout<<strDic[j]<<endl;
                    q_str.push(strDic[j]);
                    n++;
                }
            }
        }
        while(!q_str.empty())
        {
            cout<<q_str.top()<<endl;
            q_str.pop();
        }

        if(n==0)cout<<"NOT A VALID WORD"<<endl;
        cout<<"******"<<endl;

    }
    return 0;
}
复制代码

 

posted @   An2i  阅读(153)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示