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;
    }
    
  • 相关阅读:
    mysql数据类型
    linux执行shell脚本
    mysql常用命令
    CentOS 安装man man-pages
    inet_pton inet_ntop inet_aton htonl
    Makefile
    python---if、while、for
    python---变量、常量、注释、基本数据类型
    python---概述
    数组和广义表(列表)
  • 原文地址:https://www.cnblogs.com/FXY-180/p/9492262.html
Copyright © 2011-2022 走看看