試題描述:
為了提高文章質量,每一篇文章(假設全部都是英文)都會有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,之後每行是每個編輯的標記的下標集合,第乙個和最後乙個下標用英文逗號分隔,每組下標之間用分號分隔。
輸出:合併後的下標集合,第乙個和最後乙個下標用英文逗號分隔,每組下標之間用分號分隔。返回結果是從小到大的遞增排列。
輸入示例:
31,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#include#include#include#include#includeusing namespace std;int j;
struct sentance
else
} return 0;
}
C 實現球迷 今日頭條面試題
試題描述 乙個球場c的球迷看台可容納m n個球迷。官方想統計一共有多少球迷群體,最大的球迷群體有多少人。球迷選座特性 同球迷群體會選擇相鄰座位,不同球迷群體選擇不相鄰的座位。相鄰包括前後相鄰 左右相鄰 斜對角相鄰 給定乙個m n的二維球場,0代表該位置沒人,1代表該位置有人,希望輸出球隊群體個數p,...
今日頭條面試題 基礎練習
都是基礎題目,也起來也挺繞的 作為乙個手串藝人,有金主向你訂購了一條包含n個雜色串珠的手串 每個串珠要麼無色,要麼塗了若干種顏色。為了使手串的色彩看起來不那麼單調,金主要求,手串上的任意一種顏色 不包含無色 在任意連續的m個串珠裡至多出現一次 注意這裡手串是乙個環形 手串上的顏色一共有c種。現在按順...
今日頭條async await面試題執行順序
async function async1 async function async2 console.log script start settimeout function 0 async1 new promise function resolve then function console.l...