ccf201809的第三題 題目就不粘上來了!
設計思路:
首先要用乙個結構體來儲存每一行文件,有等級、標籤以及id。其次需要注意的是標籤不區分大小寫!
對於選擇器,大致可以分為兩種,第一種是只有單個的標籤或者id,這種直接遍歷文件即可(也就是我們處理過後的結點陣列);第二種是分層的,這種我們需要從選擇器的最後乙個標籤或是id尋起,比如:div p,我們先在文件中尋找到p,再在等級的約束下去找div(從下向上找)。不論是哪種,對於文件的遍歷都最好是從下向上!
下面是一些需要用到的資料結構,我做了乙個簡單的整理。
(一)結構體:可以理解為類的簡單形式,其定義與宣告形式如下:
struct node;
node a[100];
(二)容器:vector是向量型別,是動態的,可以容納多個相同的合法型別。其中一些基本用法:
#include vectorans;//定義了乙個string型別的容器
ans.push_back(str);//在向量末尾新增元素
for(vector::iterator it=ans.begin();it(三)string的特殊函式:strtok()
函式原型:char *strtok(char *s,char *delim)
該函式以delim為分隔符分割字串s,返回切割出的第乙個子串;當s值為null時,函式儲存上一次訪問的位置。
嘻嘻,功夫不負有心人,終於做出來這道題啦!第一次嘗試完整寫ccf第三題,有參考過很多大佬的思路,在此謝過啦!下面開始粘**啦~~~~
#include #include #include #include #include using namespace std;
struct node;
string tolow(string s)
} }
//多層選擇器
else
cout<} return 0;
}
201809 3 元素選擇器
模擬題,細心細心再細心,整個結構是乙個樹型的結構。include include include include include includeusing namespace std typedef long long ll const int inf 0x3f3f3f3f const double...
201809 3 元素選擇器
試題編號 201809 3 試題名稱 元素選擇器 時間限制 1.0s 記憶體限制 256.0mb 問題描述 注意 1 乙個元素的祖先是緊接著其上的縮排小於等於其縮排的那些元素 連續的區域 中的縮排小於其縮排的元素 沒有等於的元素,等於的元素只是起一種連線作用 2 後代選擇器只能是多個id或者是多個l...
201809 3 元素選擇器
題目描述 解題思路 定義node,裡面有他的id,和他的標籤,還有他的縮排。由於標籤大小寫不敏感,那就全部轉換成小寫 如果沒有標籤那麼就把標籤置為空 查詢的時候分成兩個,是否是後代選擇器 如果不是的話,判斷是不是標籤查詢,如果是標籤查詢 標籤查詢大小寫不敏感 轉換成全小寫進行匹配 如果是後代選擇器,...