输出特殊单词

特殊单词

一篇文章由有若干个单词构成,小A希望知道文章中有哪些特殊单词。所谓特殊单词是指,构成这个单词的字母经过顺序变换形成的一个新单词也出现在文章中。与原单词构成的字母对比,新单词的字母可以有大小变化。
小A希望知道文章中这样的特殊单词有哪些,您能帮他找出来吗?
输入
输入数据有若干行,每行为一个字符串,由空格分隔开,单词由大小写字符及数字构成,每个单词长度不超过30个ASCII码字符。若该行字符为#,表示输入结束。
输出
按不区分大小写的字典序输出所有的特殊单词,所有特殊单词按其第一次在文章中出现的形式输出,每行输出一个单词。
示例输入
ladder came tape soon leader acme RIDE lone Dreis peat
ScAlE orb eye Rides dealer NotE derail LaCeS drIed
noel dire Disk mace Rob dries

示例输出
Dreis
RIDE
ScAlE
came
leader
lone
orb
tape

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include<algorithm>
#include <iostream>
using namespace std;
string str1[10000], str2[10000], str3[10000], stu1, stu2;
int i = 0, j = 0, m = 0, n = 0;
int main(int arge,const char *argv[])
{
   
	
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是用C语言解决该问题的代码: ```c #include <stdio.h> #include <string.h> #include <ctype.h> #define MAX_WORD_LEN 30 // 最大单词长度 // 将字符串 s 转换为小写形式 void to_lower(char* s) { for (int i = 0; s[i] != '\0'; i++) { s[i] = tolower(s[i]); } } // 将字符串 s 排序 void sort_word(char* s) { int len = strlen(s); for (int i = 0; i < len - 1; i++) { for (int j = 0; j < len - i - 1; j++) { if (s[j] > s[j + 1]) { char temp = s[j]; s[j] = s[j + 1]; s[j + 1] = temp; } } } } int main() { char words[MAX_WORD_LEN][MAX_WORD_LEN]; // 存储单词 int count = 0; // 单词数量 // 读取输入数据 while (1) { char input[MAX_WORD_LEN]; scanf("%s", input); if (strcmp(input, "#") == 0) { break; } // 转换为小写形式 to_lower(input); // 如果单词已存在,则不需要添加到数组中 int exist = 0; for (int i = 0; i < count; i++) { if (strcmp(words[i], input) == 0) { exist = 1; break; } } // 如果单词不存在,则添加到数组中 if (!exist) { strcpy(words[count], input); count++; } } // 排序并输出特殊单词 for (int i = 0; i < count; i++) { // 排序 sort_word(words[i]); // 查找是否存在相同的单词 int exist = 0; for (int j = i + 1; j < count; j++) { char temp[MAX_WORD_LEN]; strcpy(temp, words[j]); sort_word(temp); if (strcmp(words[i], temp) == 0) { exist = 1; break; } } // 如果存在相同的单词,则输出它们中第一个出现的单词 if (exist) { continue; } // 输出单词 printf("%s\n", words[i]); } return 0; } ``` 该程序首先读取输入数据,将输入的单词转换为小写形式,并将不重复的单词添加到数组中。然后对数组中的每一个单词进行排序,并查找是否存在相同的单词。如果存在相同的单词,则跳过;否则,输出单词。最终按字典序输出所有的特殊单词

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值