UVA 156 - Ananagrams

Python刷OJ———UVa:156 Ananagrams 题干: Most crossword puzzle fans are used to anagrams — groups of words with the same letters in different orders — for example OPTS, SPOT, STOP, POTS and POST. Some words however do not have this attri... 阅读详情

        首先进行单词的大写转小写,然后重排,所以得保存两份单词进行操作。当然,还要标记这个单词重排后是否出现两次,所以还需要一个flag作为标记。处理完成后,最后还需要按照原先单词的字典顺序输出,所以还需要排一次序。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct _s {
    char a[25];
    char b[25];
    bool flag;
}s[10000];

void trans(char st[]) {
    int len = strlen(st);
    // 大写转小写
    for (int i=0; i<len; i++)
        if (st[i]>='A' && st[i]<='Z')
            st[i] += ('a'-'A');
    // 冒泡排序
    for (int i=len; i>0; i--)
        for (int j=0; j<i; j++) {
            if (st[j] < st[j-1]) {
                char tmp = st[j];
                st[j] = st[j-1];
                st[j-1] = tmp;
            }
        }
}
// 根据b排序
int cmp_b(const void *_a, const void *_b) {
    struct _s *a = (struct _s*)_a;
    struct _s *b = (struct _s*)_b;
    return strcmp(a->b, b->b);
}
// 根据a排序
int cmp_a(const void *_a, const void *_b) {
    struct _s *a = (struct _s*)_a;
    struct _s *b = (struct _s*)_b;
    return strcmp(a->a, b->a);
}

int main() {
    char st[25];
    int n = 0;

    while (scanf("%s", st)) {
        if ('#' == st[0])
            break;
        strcpy(s[n].a, st);
        trans(st);
        strcpy(s[n].b, st);
        n++;
    }

    qsort(s, n, sizeof (s[0]), cmp_b);

    for (int i=1; i<n; i++)
        if (0 == strcmp(s[i].b, s[i-1].b)) {
            s[i].flag = 1;
            s[i-1].flag = 1;
        }

    qsort(s, n, sizeof (s[0]), cmp_a);

    for (int i=0; i<n; i++) {
        if (!s[i].flag)
            printf("%s\n", s[i].a);
    }
    return 0;
}


 

每日算法7 —— UVa156 Ananagrams 阅读详情

相关推荐

feko金属球远场RCS双站

feko金属球远场RCS双站

a264672的博客 6910

例题5-4 反片语(Ananagrams,Uva 156)

输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文 本中的另外一个单词。在判断是否满足条件时,字母不分大小写,但在输出时应保留输入中 的大小写,按字典序进行排列(所有大写字母在所有小写字母的前面)。   这是刘汝佳作者的代码,我们来理解一下:         首先,我们需要标准化输入的单词(就是都变成小写的),然后对每个单词排序,这里是对每个单词排序,有兴趣的可以再函...

个人学习,如有不当,望指正,万分感谢! 450

告别Nginx原始日志!VictoriaLogs+Grafana构建企业级应用日志分析平台实战

描述:做为一个合格的运维工程师,在面对企业安全运维管理中,日志审计是一项非常重要的工作。授人以鱼不如授人以渔,各位运友们可参照作者的方案设计,在自己的项目中根据实际情况调整落地,例如,不在仅仅采集 NGINX 应用日志,而是采集 Apache、Tomcat、SpringBoot 等多种应用服务器的日志,又如,不再仅仅采集网络设备、安全审计审计日志,而是 Windows、Linux 等多种操作系统的审计日志等,大家可充分发挥想象、实践能力,也欢迎大家在知识星球中分享自己的方案设计,一起交流学习。

全栈工程师修炼指南-IT知识分享 2477

洛谷-UVA156 反片语 Ananagrams

输入格式 输出格式 题意翻译 题目大意 输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本的另外一个单词。在判断是否满足条件时,字母不分大小写,但在输出时应保留输入的大小写,按字典序排列。 输入输出样例 输入 #1 复制 ladder came tape soon leader acme RIDE lone Dreis peat ScAlE orb eye Rid...

zqhf123的博客 542

sap销售发货的流程_SAP销售订单发货后如何实现发票的自动创建?

问SAP销售订单发货后如何实现发票的自动创建?答业务场景有些快消零售企业,SAP系统单据量大,单据金额少,一般在销售发货后即可确认收入。此时无需人工在系统内操作VF01或者VF04进行开票操作,可将该操作设置成后台作业进行自动批量开票,具体操作如下:1、定义任务:VF06输入完以上信息,点击保存进入以下界面:说明:当前日期的意思是“开票的日期”等于“系统电脑中的当前日期”当前日期+/-...

weixin_42358409的博客 3363

告别时钟树平衡噩梦:在Innovus中巧妙设置stop/ignore pin来优化分段时钟网络

本文深入探讨了在Innovus工具中利用stop/ignore pin优化分段时钟树网络的高阶技巧。针对数字IC后端设计中的时钟树平衡难题,详细解析了特殊引脚属性的战略应用场景和配置方法,帮助工程师有效解决SoC设计中复杂的时钟结构问题,显著提升时序收敛效率。

weixin_30836759的博客 289

UVA-156 Ananagrams

UVA-156 Ananagrams 题目大意: 输入一些单词,按字典序顺序输出无视大小写及字母排列顺序后,只出现一次的单词。如 STOP、SOPT、spTO 算重复出现。Sample Input ladder came tape soon leader acme RIDE lone Dreis peat ScAlE orb eye Rides dealer NotE derail La

Tochase的博客 237

【云原生系列】第一讲:什么是云计算

云计算(cloud computing):分布式:分布式计算的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,合并&反馈:通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期:分布式计算:简单的分布式计算,解决任务分发,并进行计算结果的合并。因而,云计算又称为网格计算。通过分布式计算,可以在很短的时间内(几秒钟)完成对数以万计的数据的处理,从而达到强大的网络服务。现阶段:计算:分布式计算、效用计算、负载均衡、并行计算、存储。

颜淡慕潇 1万+

Ananagrams UVA - 156

题目链接:Ananagrams UVA - 156 题目:输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入的单词。 分析:将所有单词标准化。。。。 代码: #include&lt;iostream&gt; #include&lt;string&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&l...

howell 241

第6篇:ESP32连接无源喇叭播放音乐《涛声依旧》

相邻两个音之间的倍数是2^(1/12),约等于1.0594630943592952645618252949463)。这样一来,高八度的do频率是低八度do的两倍。我们把频率440赫兹作为中央C ,C调的歌就是把频率440赫兹当作do,乐谱中写作:1=C。一个八度分成12份,八个八度的十二平均音率对应的频率如下(从33Hz到7902Hz)。相邻的两个音之间的差一个半音,12345671之间的间隔分别是“全全半全全全半”。D调的歌就是把从440后面第二个音494赫兹当作do,乐谱中写作1=D。

Txwtech 1424

世界职业院校技能大赛财经赛道项目参考逐字稿五

世界职业院校技能大赛财经赛道项目参考逐字稿五

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 134

UVA - 156 Ananagrams

UVA - 156 Ananagrams题目大意:输入一组有多个单词的字符串 判断每个单词重组后(即随意改变单词字母的位子) 是否 在该字符串中出现 如果没有则按字母表顺序输出这些单词解题思路: 先将所有单词用qsort排序所有单词,再用qsort排序单词字母,然后循环比较每个单词 如果没有一样的单词则输出#include <cstdio> #include <cstring> #include

cwb15505905513的博客 210

RK3588平台开发系列讲解(硬件篇-功能外设2)

RK3588 芯片内置两个USB3.0 OTG控制器(内嵌2个USB2.0 OTG,下图绿色处),1个USB3.0 HOST 控制器,2个USB2.0 HOST控制器。这些控制器与PHY的内部复用图如下:USB3.0 OTG0 控制器支持SS/HS/FS/LS, 内嵌的USB2.0(HS/FS/LS)信号采用USB2.0 OTG PHY, 信号名见下图的红色方框内;RK3588目前仅此接口支持做Fireware的Download,应用中请务必要预留出。

whm128的博客 2508

UVa 156 - Ananagrams

传送门UVa 156 - Ananagrams

一只冰熊 1512

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Ananagrams(sort+map) UVA - 156 统计字谜

Ananagrams(sort+map) UVA - 156 统计字谜 Most crossword puzzle fans are used to anagrams — groups of words with the same letters in different orders — for example OPTS, SPOT, STOP, POTS and POST. Some word...

超逸の学习技术博客 639

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

UVA156 Ananagrams

问题链接:UVA156 Ananagrams。 题意简述:输入一个文本文件,从中提取出一些单词输出,输出的单词按照文本文件中的原来样子输出(字母大小写不变)。对于所有的单词,若字母不分大小写,单词经过重排顺序,与其他单词相同,这些单词则不在输出之列。 问题分析:用C++语言编写程序,可以练习使用STL的功能。。另外一点,C++编写程序效率会更高。 程序说明:使用...

weixin_34102807的博客 66

【字符串排序】UVA-156 Ananagrams

字符读取 UVA 156 Ananagrams 注意事项 读取未知数目的单词,单词之间有未知数目的空格隔开,输入的单词不会跨行,最后以 # 代表输入结束。 样例输入: 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 # 注意第二行的开头可以是空格。 读取单词并存进数组的代码如

Encore47的博客 223

uva 156 - Ananagrams (反片语)

csdn:https://blog.youkuaiyun.com/su_cicada/article/details/86710107 例题5-4 反片语(Ananagrams,Uva 156) 输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文 本中的另外一个单词。 在判断是否满足条件时,字母不分大小写,但在输出时应保留输入中 的大小写,按字典序进行排列(所有大写字母在...

axiwvu5138的博客 131

例题5-4 UVA156 Ananagrams(19行AC代码)

紫书刷题进行中,题解系列【GitHub|优快云】 例题5-4 UVA156 Ananagrams(19行AC代码) 题目大意 给定若干单词,按字典序输出不存在重排的单词。(经测试,不包含重复的单词) 重排单词:每个字母出现次数一样,但顺序不同,即对单词序列的一个排序 思路分析 是否满足重排可转换为等价问题:单词的构成字母与顺序无关,有两种解决思路(标准化) 字母计数:统计每个字母出现次数,若一...

努力做个书呆儿 447

UVA156Ananagrams

uva-156 题目: Most crossword puzzle fans are used toanagrams— groups of words with the same letters in differentorders — for example OPTS, SPOT, STOP, POTS and POST. Some words however do not have thisa...

叙话代码 216

UVA 156 Ananagrams(stl,map,set)

例题4:UVA 156 Ananagrams 题目:把每个单词全部转化成小写字母,对每个单词,看它的字母重排后得到的单词在所有输入的单词中是否出现过,若没有出现,就输出原单词。所有要输出的单词按字典序排列输出。 思路:先小写化,然后二维的string排个序,然后用map建立string与int的映射,然后hash一下再放到set里面排个序,其实不hash应该也可以,因为set本身就有去重的功能#

银之夏雪的博客 471
上一篇: 数码管重影问题
下一篇: UVA 400 - Unix ls(排版题)
zcube
博客等级 码龄17年 170粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值