1.本題模擬了css的dom樹查詢操作,但實際上並不需要建樹(有點複雜),我們可以直接根據層級的深度來模擬樹的層級關係
2.我們觀察可以發現對於查詢來說 如果我們匹配到最後乙個標籤(id)那麼我們只要可以在他前面找到到達這個標籤的路徑就可以了(逆序找路層級(cnt)遞減)
注意:僅僅對標籤大小寫不敏感但是對於id大小寫敏感(不然只有90分)
#include
#include
#include
#include
using
namespace std;
const
int n=
105;
struct nodea[n];
string tolower
(string str)
return str;
}vector
query(0
);//儲存查詢
vector<
int>
ans(0)
;//儲存結果
bool
search
(node a,
int&start,
int&cnt,string s)
}return
false;}
intmain()
}}for(
int i=
0;i)int len=query.
size()
;for
(int j=
1;j<=n;j++
)//遍歷dom
if(k<0)
//成功
ans.
push_back
(j);}}
//輸出結果
cout<
size()
;for
(int j=
0;jsize()
;j++
) cout<<
" "<
; cout<
}return0;
}
CSP201809 3 元素選擇器 模擬
用point來儲存結構化文件,裡面string label,string id為標籤和id,int c為所在層數,兩個點就為一層。讀入結構化文件 用getline讀入一行,然後計算出點的個數,層數就為點的個數除以2。接下來讀入label,因為label大小寫不敏感,將其全部轉換為小寫。如果字串還有剩...
csp 201809 3 元素選擇器
題目描述 201809 3 試題名稱 元素選擇器 時間限制 1.0s 記憶體限制 256.0mb 題目背景 題目描述 由題可知,結構化文件由元素組成,而這些元素是以一棵樹得形式組織起來的。我們這裡使用結構體來儲存每乙個元素,結構體內包含元素標籤 name 元素id id 元素所在層級 level用於...
csp201809 3 元素選擇器
時間限制 1.0s 空間限制 由於標籤大小寫不敏感,因此在讀取標籤時,首先將標籤的字母全部轉為小寫。建立元素陣列儲存每乙個元素,建立乙個記錄所有id出現的陣列,便於查詢,減少複雜度。在讀取文件資料時,使用vector陣列來儲存上一級元素,用於查詢每個元素的上一級元素。有點類似棧 不是後代選擇器的情況...