1 条题解

  • 0
    @ 2025-5-6 20:15:45

    解题思路

    1. 字典构建
      • 持续读取输入的单词,直到遇到 "XXXXXX" 为止。
      • 把读取到的单词存入 dic 数组,同时对单词的字母进行排序,将排序后的结果存于 sortdic 数组。
      • 使用 cnt 记录字典中单词的数量。
    2. 查询处理
      • 持续读取查询单词,直到遇到 "XXXXXX" 为止。
      • 对查询单词的字母进行排序。
      • 遍历 sortdic 数组,若排序后的查询单词和 sortdic 中的某个元素相同,就把对应的原始单词存入 res 数组。
    3. 结果输出
      • res 数组为空,输出 "NOT A VALID WORD"
      • res 数组不为空,对 res 数组进行排序并逐个输出其中的单词。
      • 每个查询结果输出后,输出 "******" 作为分隔符。
    4. 程序暂停
      • 最后使用 system("pause"); 暂停程序,这通常用于在 Windows 系统的控制台中保持窗口打开,便于查看输出结果。
    #include<iostream>
    #include<string>
    #include<algorithm>
    using namespace std;
    
    string dic[100], sortdic[100];
    
    int main(){
    	string s;
    	int cnt = 0;
    	while(cin>>s&&s!="XXXXXX"){
    		dic[cnt] = s;
    		sort(s.begin(),s.end());
    		sortdic[cnt] = s;
    		cnt++;
    	}
    	while(cin>>s&&s!="XXXXXX"){
    		string res[100];
    		int valid = 0;
    		sort(s.begin(),s.end());
    		for(int i = 0; i < cnt; i++)
    			if(s==sortdic[i]){
    			res[valid++] = dic[i];
    		}
    		if(valid==0){
    			cout << "NOT A VALID WORD" << endl;
    		}
    		else{
    			sort(res,res+valid);
    			for(int i = 0; i< valid; i++)
    				cout << res[i] << endl;
    		}
    		cout << "******" << endl;
    	}
    	system("pause");
    }
    
    • 1

    信息

    ID
    319
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者