CCF201803 3 URL對映 大模擬

2021-08-27 18:59:48 字數 2004 閱讀 5983

傳送門:ccf201803-3 url對映

做的第一道大模擬,**一小時,debug四小時,很難受。

總的來說不是一道很麻煩的題,但有一些坑需要說明:

除了最後乙個引數為時,規則末尾有無『/』是不同的;

有可能出現空規則,即單獨乙個『/』;

若乙個url滿足多個規則,按照輸入時的順序輸出第乙個;

型別引數需要抹去前導零。

最自閉的乙個坑,花了兩個多小時才找出來的,是我下意識使用了map作為儲存規則與規則名稱的結構。對,就是map,first用來存規則,second用來存規則名稱。喝喝,看起來不用開兩個陣列很省事,實際上暗藏殺機,map事實上是排好序了的。。。這樣會對上面的第三點產生影響。但用map也不是不可以,據我所知有c++11有一種map叫unordered_map,應該可以解決順序的問題。

根據如上所述需要注意的點,我編了個樣例,可以測試一下:

!樣例輸入

7 7/articles/2003/ special_case_2003

/articles/year_archive_1

/articles/// month_archive

/articles//// article_detail

/static/static_serve

/a const_string

/ empty

/articles/2004/

/articles/2004/06

/articles/1985/09/aloha/

/articles/hello/

/static/js/jquery.js/a/

!樣例輸出

404404

article_detail 1985 9 aloha

404static_serve js/jquery.js

const_string

empty

下面上**:

#include #define ll long long

#define inf 0x3f3f3f3f

using namespace std;

const int max0 = 128;

int n, m;

string s1[max0], s2[max0]; //規則及規則名

string sec[max0][max0]; //第i條規則的第j個引數

bool endflag[max0]; //規則是否以'/'結尾

void read()

sec[i][cnt] += s1[i][j];}}

}void search(string s)

string currule = sec[i][cnt], ssec = "";

if(currule == "")

if(s[j] > '9' || s[j] < '0')

isans = false;

ssec += s[j++];

}if(!isans)

break;

while(ssec[0] == '0')

ssec.erase(ssec.begin());

ans.push_back(ssec);

}if(currule == "")

ssec += s[j++];

}ans.push_back(ssec);

}if(currule == "")

if(currule[0] != '<')

ssec += s[j++];

}if(sec[i][cnt] != ssec)

}++cnt;

}if(j < s.size())

isans = false;

if(cnt && isans && sec[i][cnt-1] != "")

if(isans)

}cout << "404\n";

}void solve()

}int main()

CSP認證 201803 3 URL對映

題意 從簡條件下的 url 對映 url對映 url映 射 模擬題。所有 url 位址 url位址 url地 址 以 開頭,以 分隔,合法字元只有大小寫英文本母 阿拉伯數字 減號 下劃線 katex parse error expected group after at position 1 和小數...

URL萬用字元對映

url萬用字元對映 我們還可以通過萬用字元對url對映進行配置,萬用字元有 和 兩個字元。其中 表示1個字元,表示匹配多個字元,表示匹配0個或多個路徑。例如 helloworld index?可以匹配 helloworld indexa helloworld indexb 但不能匹配 hellowo...

python Django對映URL報錯

系統 ubuntu16.04 x64 django 2.1 python 3.5 報錯資訊很長,有效的基本是下面這些 問題原因 猜測是django的版本問題導致的。啟用虛擬環境後可以檢視django的版本,指令為 python m django version 解決方法 1.換低版本的django,...