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

基于ROS下的安卓手机图像和IMU跑ORB-SLAM3

接之前文章继续,手上没有现成的单目+IMU硬件,但是安卓手机几乎人人都有。因此,本文讲下如何用手机跑ORB-SLAM3的Mono和Mono_Inertial。 1. 手机与PC通信 基于ROS下的信息发布和订阅,手机和PC在一个局域网下进行信息(image和IMU)传输。 手机APK参考了github上的2个开源Android_Camera-IMU和android_ros_sensors,基于ros_java生成安卓APP,下载安装任一个APP到安卓手机,界面分别是这样: 手机和PC连一个无

h_372101的博客 1万+

UVa 123 - Searching Quickly

传送门

一只冰熊 1208

DELL服务器BIOS下配置RAID阵列

dell服务器配置raid阵列

weixin_58250887的博客 1万+

Deepracer 智能无人车-绿洲科学云平台介绍

Deepracer 智能无人车 绿洲科学云

woaixiyue19831的博客 1946

UVA 123 Searching Quickly

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

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

RK356x U-Boot研究所(命令篇)3.12 mtd命令的用法

RK356x U-Boot研究所(命令篇)3.12 mtd命令的用法

Systemcall名屋 1687

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

AUTOSAR&UDS 理论要点及isolar实战-DEM模块

从这节开始,将讲解UDS诊断中非常重要的知识点:故障事件触发、故障信息上报、故障信息处理、故障信息存储和故障系统降级,后续会陆续更新。

cqaa11的博客 553

37、基于铁电场效应晶体管(FeFET)的片上深度神经网络(DNN)直接反馈对齐训练

本文提出了一种基于铁电场效应晶体管(FeFET)的深度神经网络(DNN)训练加速器架构,结合直接反馈对齐(DFA)算法和FeFET的独特物理特性,以解决当前DNN训练中反向传播(BP)算法带来的高计算开销、复杂数据依赖和高能耗问题。通过设计基于FeFET的MVM引擎、低功耗ADC和随机数生成器(RNG),该架构在速度和功率效率方面相比现有基于ReRAM的加速器分别提升了1.3倍和2.5倍。研究为未来高效能AI训练硬件的发展提供了新的思路和实现路径。

wine的专栏 164

UVA - 123 Searching Quickly

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

cwb15505905513的博客 323

用 MATLAB 实现鼻子和嘴的检测

为了方便起见,这里我们使用了 CascadeObjectDetector 中自带的 haarcascade_frontalface_alt2.xml 文件,该文件包含了多个包含鼻子和嘴的样本图像。其中 bbox 变量表示检测到的所有鼻子和嘴的边界框信息。在图像处理中,鼻子和嘴的检测是十分重要的一项任务。本文将介绍如何使用 MATLAB 实现鼻子和嘴的检测,并提供相应的源代码。然后,我们可以调用之前创建的 detector 对象来进行鼻子和嘴的检测。综上所述,我们可以使用以上代码实现鼻子和嘴的检测。

qq_39605374的博客 256

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

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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

怀旧版电脑GBC模拟器

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

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

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

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、付费专栏及课程。

余额充值