1. 程式人生 > >[csp-201809-3]元素選擇器-編譯原理

[csp-201809-3]元素選擇器-編譯原理

宣告:同樣是參考照抄hyh學長的程式碼!(有問題我馬上刪這篇emm

 

題面:

 

題解:
要解決的兩個關鍵問題:

第一個是語義解析,也就是把樹構造出來。這個也是用指標實現。這個樹的構建比起上一題來更簡單,因為節點實際上都是一樣的,而上一題(JSON查詢)則要分為物件和字串兩種。

  這裡要注意parent的指向,用一個堆實現查詢parent。

第二個是查詢。要查詢符合條件的路徑。這裡稍微需要一些思路。

  如果直接從上往下找,那這個複雜度最壞的情況是n^2的。但是在實際情況中(也是題目給的提示),從後往前找會大大減少情況(可以排除很多情況)。