UVA 123 - Searching Quickly(分离单词)

第6季字符串处理裴新凤(1) 西北工业大学noj答案第六季 字符串排序 分离单词 The Clock 立即下载

        这道题还是有点麻烦的。如果把每个句子存为一个字符串,则在最后分离单词的时候会很麻烦。所以,我用一个结构体来作为一句话,把每句话中的单词单独储存,则最后处理的时候会方便很多。

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

struct ss {
    int x, y;
    char word[20][50];
    char key[50];
}stmp[250], s[250];

char ig[55][15];        // 被忽略的词
int ign = 0, sn = 0;    // 被忽略词数量和title数量

// 将字符串大写转小写
void UTL(char str[]) {
    int len = strlen(str);

    for (int i=0; i<len; i++)
        if (str[i]>='A' && str[i] <= 'Z') {
            str[i] += ('a'-'A');
        }
}
// 将字符串小写转大写
void LTU(char str[]) {
    int len = strlen(str);

    for (int i=0; i<len; i++)
        if (str[i]>='a' && str[i] <= 'z') {
            str[i] += ('A'-'a');
        }
}

// 判断是否为被忽略词
bool judge(char str[]) {
    for (int i=0; i<ign; i++) {
        if (0 == strcmp(str, ig[i]))
            return false;
    }
    return true;
}

// 快排比较函数,如果两个字符串相等,就比较它们的优先级
int cmp(const void *_a, const void *_b) {
    struct ss *a = (struct ss*)_a;
    struct ss *b = (struct ss*)_b;
    if (strcmp(a->key, b->key) != 0)
        return strcmp(a->key, b->key);
    return a->x - b->x;
}

int main() {

    // 下面两个while 用于输入操作
    while (scanf("%s", ig[ign])) {
        if (':' == ig[ign][0])
            break;
        ign++;
    }
    getchar();

    char str[50];
    while (scanf("%s", str) != EOF) {
        char ch = getchar();

        // 先将每个单词转为小写
        UTL(str);

        strcpy(stmp[sn].word[stmp[sn].y], str);
        stmp[sn].y++;           // 记录每句话单词的个数

        if ('\n' == ch) {
            stmp[sn].x = sn;    // 记录每句话的优先级
            sn++;
        }
    }

    // 下面对每句话的每个单词进行处理
    int num = 0;
    for (int i=0; i<sn; i++) {
        for (int j=0; j<stmp[i].y; j++) {   // 现在对每个单词进行处理
            if (judge(stmp[i].word[j])) {
                s[num] = stmp[i];
                LTU(s[num].word[j]);
                strcpy(s[num].key, s[num].word[j]);
                num++;
            }
        }
    }

    // 排序并输出
    qsort(s, num, sizeof (s[0]), cmp);
    for (int i=0; i<num; i++) {
        int j;
        for (j=0; j<s[i].y-1; j++)
            printf("%s ", s[i].word[j]);
        printf("%s\n", s[i].word[j]);
    }

    return 0;
}


 

NOJ史上最全答案 最全答案有所有西北工业大学网上作业答案,可以无限期使用 立即下载

相关推荐

西工大noj答案完整版.doc

西北工业大学NOJC程序设计习题答案(非本人制作,侵删) 1.“1“的传奇 2.A+B 3.A+BⅡ 4.AB 5.ACKERMAN 6.Arithmetic Progressions 7.Bee 8.Checksum algorithm 9.Coin Test 10.Dexter need help 11.Double 12.Easy problem 13.Favorite number 14.Graveyard 15.Hailstone 16.Hanoi Ⅱ 17.Houseboat 18.Music Composer 19.Redistribute wealth 20.Road trip 21.Scoring 22.Specialized Numbers 23.Sticks 24.Sum of Consecutive 25.Symmetric Sort 26.The Clock 27.The Ratio of gainers to losers 28.VOL大学乒乓球比赛 29.毕业设计论文打印 30.边沿与内芯的差 31.不会吧,又是A+B 32.不屈的小蜗 33.操场训练 34.插入链表节点 35.插入排序 36.插入字符 37.成绩表计算 38.成绩转换 39.出租车费 40.除法 41.创建与遍历职工链表 42.大数乘法 43.大数除法 44.大数加法 45.单词频次 46.迭代求根 47.多项式的猜想 48.二分查找 49.二分求根 50.发工资的日子 51.方差 52.分离单词 53.分数拆分 54.分数化小数 55.分数加减法 56.复数 57.高低交换 58.公园喷水器 59.韩信点兵 60.行程编码压缩算法 61.合并字符串 62.猴子分桃 63.火车站 64.获取指定二进制位 65.积分计算 66.级数和 67.计算A+B 68.计算PI 69.计算π 70.计算成绩 71.计算完全数 72.检测位图长宽 73.检查图像文件格式 74.奖金发放 75.阶乘合计 76.解不等式 77.精确幂乘 78.恐怖水母 79.快速排序 80.粒子裂变 81.链表动态增长或缩短 82.链表节点删除 83.两个整数之间所有的素数 84.路痴 85.冒泡排序 86.你会存钱吗 87.逆序整数 88.排列 89.排列分析 90.平均值函数 91.奇特的分数数列 92.求建筑高度 93.区间内素数 94.三点顺序 95.山迪的麻烦 96.删除字符 97.是该年的第几天 98.是该年的第几天? 99.数据加密 100.搜索字符 101.所有素数 102.探索合数世纪 103.特殊要求的字符串 104.特殊整数 105.完全数 106.王的对抗 107.危险的组合 108.文件比较 109.文章统计 110.五猴分桃 111.小型数据库 112.幸运儿 113.幸运数字”7“ 114.选择排序 115.寻找规律 116.循环移位 117.延伸的卡片 118.羊羊聚会 119.一维数组”赋值“ 120.一维数组”加法“ 121.勇闯天涯 122.右上角 123.右下角 124.圆及圆球等的相关计算 125.圆及圆球等相关计算 126.程序员添加行号 127.找出数字 128.找幸运数 129.找最大数 130.整数位数 131.重组字符串 132.子序列的和 133.子字符串替换 134.自然数立方的乐趣 135.字符串比较 136.字符串复制 137.字符串加密编码 138.字符串逆序 139.字符串排序 140.字符串替换 141.字符串左中右 142.组合数 143.最次方数 144.最大乘积 145.最大整数 146.最小整数 147.最长回文子串 148.左上角 149.左下角

NOJ 字符串 分离连续数字

小题一道,附上代码

m0_72690642的博客 260

字符串排序

谭浩强版作业

UVa 123 Searching Quickly

水题不解释/* Author: ACb0y Date: 2010-11-8 Type: water~~ ProblemId: UVa 123 Searching Quickly Result: 8381985 123 Searching Quickly Accepted C++ 0.020 2010-11-08 07:06:11 */ #include #include #include #include #include #include using nam

个人独立博客http://www.acb0y.cn/ 1213

西北工业大学noj答案

西北工业大学noj答案

c程序noj答案

西北工业大学noj程序以及c++程序答案,包正确通过。

UVa Problem 123 - Searching Quickly

// UVa Problem 123 - Searching Quickly // Verdict: Accepted // Submission Date: 2012-01-04 // UVa Run Time: 0.016s // // 版权所有(C)2012,邱秋。metaphysis # yeah dot net // // [解题方法] // 简单的字符串处理和排序题。

寂静山林 3806

图形化界面无限转圈?CentOS 7的SELinux避坑指南(附命令行修复实录)

本文详细解析了CentOS 7图形界面启动时无限转圈或卡在'starting switch root'的故障原因,主要与SELinux安全策略冲突有关。提供了三种修复方案:临时禁用SELinux、重装策略包和精细调整策略,并分享了长期维护建议,帮助用户平衡系统安全性与可用性。

potato的博客 799

UVa 123 - Searching Quickly

传送门

一只冰熊 1208

人工智能-CS188 Project 2: Multi-agents

一、项目介绍 项目介绍网页 项目代码下载 本项目是采用Berkeley的CS188课程内容实习二的内容,在这个项目中,我们将为经典版本的Pacman 设计自动算法,包括幽灵。在此过程中,我们将实现 minimax 和 expectimax 搜索并尝试评估函数设计 完成作业只需要完成5个题目,按照项目介绍的步骤进行完成,主要是在multiAgents.py文件中进行补充代码 二、代码详情 1、Question1:Reflex Agent 略 2、Question2:Minimax 套用ppt上的minm

xiten的博客 8285

【Qt】使用QMediaPlayer播放视频

window平台可以安装K-Lite,linux平台一般各发行版都会默认安装GSteam。播放RTSP视频时,可以使用VLC播放器搭建一个视频推流服务器,用于拉流的客户端的调试。3、如果没有添加Qt环境变量,请把关联的Qt5MultimediaWidgets.dll和Qt5Multimedia.dll放到进程路径下否则也会报ServiceMissingError错误。2、需要安装解码器,否则报 ServiceMissingError 无法找到服务的错误。1、需要在.pro工程文件中引用对应模块。

奔涌的后浪的专栏 2219

UVA 123 Searching Quickly

题意:给出一系列要忽略的单词,这些单词以外的单词都看作关键字。然后给出一些标题,找出标题中所有的关键字,然后按这些关键字的字典序给标题排序。 注意两点:相同关键字出现在不同标题中,出现在输入较前位置的标题排在前面(从样例数据可以看出,而且multimap也正是这么做的);同一个关键字在一个标题中出现多次,关键字位于较前位置的排在前面(从左向右扫描的话就没有问题)。 #include#i

u013268685的专栏(有一种幸福叫AC,有一种期待叫AK) 3146

Chipyard------介绍与环境搭建

Chipyard是一个开源的、可扩展的、集成化的芯片设计平台,旨在帮助芯片设计人员快速、高效地开发自己的定制芯片。由伯克利大学架构研究小组开发,它基于Chisel语言和Scala编程语言,提供了一整套硬件设计工具和流程,包括RTL设计、验证、物理布局、仿真等,以及支持多种芯片体系结构的库和模块。

qq_38798111的博客 9479

STL --- UVA 123 Searching Quickly

UVA - 123 Searching Quickly Problem's Link:   http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19296   Mean:  有一个字符串集合Ignore,还有一个文本集合TXT,在TXT中除了Ignore中的单词外其他的都是关键字,现在要你根据这些关键字来给TXT文本排

北岛知寒 260

Rockchip平台之RK3566/3568 OS02N10

文章摘要 本文主要介绍了200W摄像头传感器OS02N10在RK3566平台上的兼容与适配过程。作者基于之前的400W摄像头兼容经验,针对200W摄像头进行了类似的适配工作。文章详细阐述了RK3566芯片的特性和OS02N10传感器的技术参数,包括分辨率、接口和功耗等。适配过程分为三个关键部分:DTS设备树文件配置(定义I2C地址、电源域和GPIO控制等)、驱动文件开发(寄存器初始化和操作)以及XML和JSON配置文件调整(图像参数设置)。作者特别强调了初始化数组中空寄存器终止条件的重要性,并分享了兼容过程

different_xzh的博客 2412

8位可控加减法电路设计

一、设计要求   利用Logisim平台中现有运算部件构建一个8位可控加减法器,可支持八位加减法,利用已经封装全加器和逻辑门进行连接,要求实现相应的输出,判断是否溢出。 二、方案设计 实验原理: [A]补+[B]补 = [A+B]补(mod2^n+1)   公式1        [A-B]补 = [A]补+[-B]补(mod2^n+1)    公式2 FA为全加器,利用全加器实现加减法,难点在于实验减法,对输入的[Y]补各位取反加一即为[-Y]补,利用公式2,就可以将减法转化为加法再利用全加

qq_51700383的博客 1万+

UVA - 123 Searching Quickly

UVA - 123 Searching Quickly题目大意:给一些要忽略的单词,这些单词以外都是关键字,然后给你若干个标题。要你以这些关键字进行排序(当一个标题内存在多个关键字要以每个关键字都参与排序),最后输出。 解题思路: 定义一个结构体用来存放单个单词和他所在的标题位置,然后将这个结构体按字典序排序,相同时按标题从小到大排序即可。将标题的单个单词抓取到结构体即可,然后就是输出时把单词大写

cwb15505905513的博客 323

【2024/3/12 更新】Windows Server 2019 服务配置与管理汇总

本栏目一共介绍了17种Windows Server 2019 的服务配置与管理,为了方便大家阅读理解,特意总结了17种服务的一些内容。具体说明如下所示

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 2万+

UVA - 123 - Searching Quickly

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=98&page=show_problem&problem=59

slashXX in the sky 811

Arduino、ESP32驱动BMP390L数字大气压传感器(压力传感器)

BMP390L是一款博世新研发的工业级专用数字气压传感器,具有极高的温度稳定性、低漂移、低功耗。

不脱发的程序猿 2011

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

uva - 123 - Searching Quickly

这是一道很好的基础题,它涵盖字符串的操作,排序和检索,题目的大意如下:首先给你一些忽略的单词,再给你一些title,在title中,除去忽略的单词,剩下的就全是关键字(keyword)了,例如,忽略词 'is','a','cool',一个title为 it is a pig but so cool,那么关键词就为‘it’,‘pig’,‘but’,‘so’。然后将所有关键字排序后输出: it is

gusongji的专栏 587

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Uva 123 Searching Quickly

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=59 每输入一个句子,将不被忽略的词(not to ignore)及其所在位置保存下来,然后对所有这样的词排序,输出即可。 # include <st...

aibiming0139的博客 144

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

uva 123 Searching Quickly

题意:给你些要忽略的单词,然后给你几个句子,找出非忽略单词,然后按照非忽略单词的字典序输出非忽略单词所在的句子,注意,非忽略单词要大写民,其他单词要小写,如果一个句子中出现多个非忽略单词,先输出左边的,再输出右边的。 感觉做得比较麻烦,把句子拆成单词,先找出非忽略单词,然后再用

1302
上一篇: UVA 400 - Unix ls(排版题)
下一篇: UVA 10194 - Football (aka Soccer)
zcube
博客等级 码龄17年 170粉丝 120原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值