zoukankan      html  css  js  c++  java
  • c++ 病句 今日头条面试题

    试题描述:

    为了提高文章质量,每一篇文章(假设全部都是英文)都会有m名编辑审核,每个编辑独立工作,会把觉得有问题的句子通过下标记录下来,比如[1,10],1表示病句的第一个字符,10表示病句的最后一个字符。也就是从1到10个字符组成的句子,是有问题的。

    现在需要把多名编辑有问题的句子合并起来,送给总编辑进行最终的审核。比如编辑a指出的病句是[1,10],[32,45];b编辑指出的病句是[5,16],[78,94],那么[1,10]和[5,16]是有交叉的,可以合并成[1,16],[32,45],[78,94]。

    输入:

    编辑数量m,之后每行是每个编辑的标记的下标集合,第一个和最后一个下标用英文逗号分隔,每组下标之间用分号分隔。

    输出:

    合并后的下标集合,第一个和最后一个下标用英文逗号分隔,每组下标之间用分号分隔。返回结果是从小到大的递增排列。

    输入示例:

    3
    1,10;32,45
    78,94;5,16
    80,100;200,220;16,32
    输出示例:

    1,45;78,100;200,220

    其他:

    对于100%的数据,1<=M<=1e3,句子下标不超过int范围,每个编辑记录的下标不超过1000组。

    这道题和活动安排的区别就是活动安排是找不重合的区间,而这道题是要去找重合的点。
    这道题的输入看似很麻烦,其实不然。

    在提高输入速度是,这个问题也就迎刃而解了,只需要在scanf()中添加一个,就像scanf("%d,%d",&a[j].x,&a[j].y)一样。

    十分的简单。

    之后只需要用getchar()判断一下换行就行了,不知道的看(C++  球迷)。

    还有这道题需要一个bool operator<(const sentance&sentance2)const。

    这是一个重载操作。

    其他的就是结尾的输出了。

    你可以把最后一组数据的起始变得很大,再判断一下,就可以像输入一样输出了。

    注意:要使用sort排序,sort排序是由小到大排序的,而是swap是从大到小排序的,所以分别使用<和>排序的。

    这也就是重载的意义了。

    #include<iostream>
    #include<cmath>
    #include<cstdio>
    #include<cstring>
    #include<stdio.h>
    #include<algorithm>
    using namespace std;
    int j;
    struct sentance
    {
    	int x;
    	int y;
    	bool operator<(const sentance&sentance2)const
    	{
    		return x<sentance2.x;
    	}
    }a[1000002];
    int main()
    {
    	int n;
    	int k=0;
    	cin>>n;
    	for(int i=0;i<n;i++)
    	{
    		while(scanf("%d,%d",&a[j].x,&a[j].y))
    		{
    			j++;
    			k++;
    			if(getchar()!=';')break;
    		}
    	}
    	sort(a,a+k);
    	int flag=0;
    	a[k].x=0x7ffffff;
    	for(int i=0;i<k;i++)
    	{
    		if(a[i].y>=a[i+1].x)
    		{
    			a[i+1].x=a[i].x;
    			a[i+1].y=max(a[i+1].y,a[i].y);
    		}
    		else
    		{
    		if(i==k-1)printf("%d,%d",a[i].x,a[i].y);
    		else printf("%d,%d;",a[i].x,a[i].y);
    		}
    	
    	}
    	return 0;
    }
    
  • 相关阅读:
    一个ip对应多个域名多个ssl证书配置-Nginx实现多域名证书HTTPS,NGINX支持多个带SSL证书的网站同时部署在同一台服务器上
    SVN报错:Node remains in conflict显示冲突的解决办法
    阿里云上部署了zabbix,突然无法收到报警邮件的解决办法
    npm安装socket.io时报错的解决方法(npm WARN enoent ENOENT: no such file or directory, open '/usr/local/nodejs/bin/package.json')
    winscp以命令行方式同步服务器数据到PC机磁盘上
    在阿里云上无法使用mailx发送邮件的解决办法,验证可用。
    编译geth报错的解决方法 make: *** [geth] 错误 1
    ZABBIX 3.0 监控MongoDB性能【OK】
    print命令
    软件开发规范
  • 原文地址:https://www.cnblogs.com/FXY-180/p/9492262.html
Copyright © 2011-2022 走看看