Jobdu 題目1090 路徑列印

2022-09-15 23:06:30 字數 1281 閱讀 4127

題目描述:給你一串路徑,譬如:

a\b\c

a\d\e

b\cst

d\你把這些路徑中蘊含的目錄結構給畫出來,子目錄直接列在父目錄下面,並比父目錄向右縮一格,就像這樣:ab

cd  eb

cstd

同一級的需要按字母順序排列,不能亂。

輸入:每個測試案例第一行為乙個正整數n(n<=10)表示有n個路徑,當n為0時,測試結束,接下來有n行,每行有乙個字串表示乙個路徑,長度小於50。

輸出:輸出目錄結構,每乙個測試樣例的輸出緊跟乙個空行。

樣例輸入:

4

a\b\c

a\d\e

b\cst

d\0

樣例輸出:

a

b c

d e

b cst

d先帖**如下:

#include #include #include #include #include using namespace std;

bool comp(string a,string b){

int l = a.length()>b.length()?b.length():a.length();

for(int i=0;iv;

while(cin>>n&&n){

v.resize(0);

while(n--){

cin>>str;

//cout《這道題目卡了很久。一直pe,原來題目中的輸出要求指的是 子目錄比父目錄向右縮一格

指的是 子節點的縮排長度 =父親節點的縮排 +父親節點本身字串長度+1.

懶得寫注釋了,程式的思想是把所有的檔案提取出來,存在乙個vector裡,對其按要求排序輸出即可。

比如說樣例中的:

a\b\c

a\d\e

b\cst

d\首先從這些目錄中提取出所有的檔案(包含路徑),得到:

a、a\b、a\b\c、a\d、a\d\e、b、b\cst、d,

然後要做的就是排序了,過程很簡單,在自定義的comp函式中實現。

在這兒排序後的結果應該跟上面一樣。

最後輸出,輸出的時候把檔案路徑的部分隱掉,至於空格的數量看題目的要求了。這兒最蛋疼了,一直沒搞清楚題意,害我pe了10幾次。

這題也可以用字典樹吧,感覺還是這個實現起來簡單一點。

OJ 1090 路徑列印

include include include include include using namespace std void func if find v.begin v.end str v.end while str.find string npos sort v.begin v.end fo...

題目四 路徑和

給定乙個包含非負整數的 m x n 網格 grid 請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。輸入 grid 1,3,1 1,5,1 4,2,1 輸出 7 override public int minpathsum int grid int ...

1967 路徑定向

給出乙個有向圖,要求給每條邊重定向,使得定向後出度等於入度的點最多,輸出答案和任意一種方案 input 第一行兩個正整數n,m,表示1 n號點與m條邊 接下來m行,每行兩個正整數xi,yi,表示存在一條有向邊從xi指向yi n 10 5,m 3 10 5,xi,yi noutput 第一行乙個整數a...