201809 3元素選擇器

2021-10-07 15:25:30 字數 2026 閱讀 7862

時間限制

1.0s

記憶體限制

考慮到有多級標籤,因此設定標籤結構體,儲存標籤樣式label、屬性id、以及所在的極數grade。

以樣例來說。

html所在為0級,向後等級依次遞增。可得出等級=.的數量/2

注意將label轉換成小寫。

2. 一次儲存完標籤後,對輸入的每乙個選擇進行相似處理。用乙個vector< string >來儲存多級選擇。(把每一種選擇都看作多級選擇)。處理每乙個選擇,如果乙個選擇的開頭不是#,將其轉換成小寫。

3. 倒序遍歷標籤陣列,並倒序進行選擇匹配,一旦遇到和選擇相匹配的標籤或者標籤的屬性,記錄該位置,從該位置向前去尋找它上一級是否有匹配下乙個選擇的。如果有繼續向上匹配,如果沒有,結束此次匹配,進行下一輪匹配。

4. 需要注意vector和string的大小,注意不要超出記憶體。

#include

#include

#include

#include

#include

using

namespace std;

struct order};

order orders[

110]

;void

_strlwr

(string &s)

//轉換為小寫}}

intmain()

orders[i]

.grade = grade /2;

string label;

int f =0;

while

(grade < tsize)

//得到label和id

//判斷是label還是id

if(f ==0)

else

grade++;}

}//測試輸出

/*cout << "orders: " << endl;

for (int i = 1; i <= n; i++)

*/for(

int i =

1; i <= m; i++

)//輸入元素選擇器,並進行選擇

if(tstr[0]

!='#'

) vec.

push_back

(tstr)

; tstr.

clear()

; index++;}

csize =

(int

)vec.

size()

-1;//測試輸出

/*cout << "vec: ";

for (int j = csize; j >= 0; j--)

cout << endl;*/

for(

int j = n; j >=

1; j--)}

}if(flag ==

false

)//向上一級沒有匹配成功,直接退出

tempsize--

;//匹配成功再進行向上一級的匹配}if

(tempsize <0)

//每一級都匹配成功了}}

//輸出結果

cout << ans.

size()

;for

(int j = ans.

size()

-1; j >=

0; j--

) cout << endl;

}}

201809 3 元素選擇器

ccf201809的第三題 題目就不粘上來了!設計思路 首先要用乙個結構體來儲存每一行文件,有等級 標籤以及id。其次需要注意的是標籤不區分大小寫!對於選擇器,大致可以分為兩種,第一種是只有單個的標籤或者id,這種直接遍歷文件即可 也就是我們處理過後的結點陣列 第二種是分層的,這種我們需要從選擇器的...

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...