1.關於選擇器先明確一下:
選擇器有三種情況,有標籤選擇器,id選擇器,兩者復合的後代選擇器(前面兩者易於理解,第三個選擇器比較複雜)
理解一下後代選擇器:格式為a b,其中a和b均為標籤選擇器或id選擇器(二者)
2.具體思路:
(1)有層級關係,聯想到樹,便於對上級進行查詢,定義結構體element,記錄需要的各種資訊:包括查詢內容,層級,行號
(2)將element內容存放在陣列中,在前兩個選擇器的操作中,直接遍歷陣列找到符合的結果,記錄行號;在後代選擇其中,先遍歷確定最後乙個查詢專案是否出現,如果出現了,再向前回溯找它的上一級是否滿足,若上級(還有上上級之類,與輸入有關)滿足要求,則記錄之前最後乙個查詢專案的行號
3.字串的處理問題:
之前總結了一下,這裡就不寫了。
4.一些小細節:
標籤大小寫不敏感,id敏感;這裡我將字串全部轉換為小寫字母
#include
using
namespace std;
struct element
q[210];
int cnt;
string lower
(string s)
//字串轉換為小寫
void
insert
(string s,
int i)
else name = s.
substr
(tlevel)
;//沒有id
q[cnt]
.text =
lower
(name);if
(!id.
empty()
) cnt++;}
intmain()
for(
int i =
0; i < m; i++
)else
if(v.
size()
>1)
//選擇器多項
if(r == v.
size()
-1) ans.
push_back
(q[i]
.row);}
} cout << ans.
size()
;for
(auto
&x : ans) cout <<
" "<< x;
cout << endl;
}return0;
}
CSP 2023年9月第2題 買菜
這題的重點 就是要清楚地分析 兩個時間段之間的對應關係 要清晰的分析出 相交 包含 相離的情況 需要我們在紙上畫圖,這樣比較好分析 其次 要建立結構體陣列 從而來存放讀入的資料 還有就是 結果感覺 大概是10 9 的樣子,因此 把設定為 long long 型別 下面是 原始碼 include us...
CSP 2023年12月第2題 小明放學
資料型別 必須要是long long型別 所有測試點保證 n 10 5 可能出現的最大的數為10 6 10 5 10 11 int型最大表示的數是2147483647 2 10 9 long long最大儲存範圍是10 18 燈光的順序紅 綠 黃 k 1 紅 k 2 黃 k 3 綠 這個對應順序有點...
CCF2023年12月第3題 Crontab
這一題要求我們對給定的配置資訊,在特定的時間段輸出需要執行的任務。在unix中每分鐘檢查一次,最簡單的思路就是用迴圈模擬時間的推移,每分鐘匹配一次規則。這種情況在真正的系統裡是很高效的,因為時間是真實流動的。但如果是模擬執行則有些浪費時間。如果在考試過程中想不到其它方法這種暴力方法至少可以通過70 ...