度熊手上有一本神奇的字典,你可以在它裡面做如下三個操作:
1、insert : 往神奇字典中插入乙個單詞
2、delete: 在神奇字典中刪除所有字首等於給定字串的單詞
3、search: 查詢是否在神奇字典中有乙個字串的字首等於給定的字串
input這裡僅有一組測試資料。第一行輸入乙個正整數n(1
≤n≤100000
)'>n(1≤n≤100000)
,代表度熊對於字典的操作次數,接下來n
'>n
'>n
行,每行包含兩個字串,中間中用空格隔開。第乙個字串代表了相關的操作(包括: insert, delete 或者 search)。第二個字串代表了相關操作後指定的那個字串,第二個字串的長度不會超過30。第二個字串僅由小寫字母組成。output對於每乙個search 操作,如果在度熊的字典中存在給定的字串為字首的單詞,則輸出yes 否則輸出 no。sample input
5ninsert hello
insert hehe
search h
delete he
search hello
'>n
'>sample output
yesno思路分析 : 字典樹板子題,唯一有個要注意的地方就是刪除操作,你要刪除具有公共字首的所有串,首先可以先計算出公共字首的個數,然後再去處理一遍所要處理的串,給每個節點刪除掉公共字首的個數,
將最後乙個點的 val 變為 0 ,並且將其 next 全部變為 0即可。
**示例 :
#define ll long longconst int maxn = 1e6+5;
const double pi = acos(-1.0);
const int inf = 0x3f3f3f3f;
struct node
t[maxn];
char f[20], s[50];
int rt = 1;
int num;
void insert()
}void del()
t[u].val = 0;
for(int j = 0; j < 26; j++) t[u].next[j] = 0;
}int search()
return t[u].val;
}int main()
else
}return 0;
}
hdu5687(最容易理解的字典樹)
字典樹模板題。涉及到字典樹的插入,查詢,刪除操作。最開始使用的是動態陣列來解,這樣做的話,如果測試樣例先是刪除操作,就會報陣列溢位錯誤。奉上字典樹模板 開始使用這個模板時,說這個模板容易爆記憶體溢位,不過多慮了 大概開350萬才會爆 除此之外時間也稍微久了一點,但是理解相比其它字典樹模板也更加容易 ...
字典的增刪改查。
增 有則修改,無則新增 dic key 要增加的內容 如果dict中沒有出現這個key,就會新增 乙個key value的組合進dict 有則不變,無則新增 dic.setdefault 李嘉誠 也可以往 裡 面設定值.dic.setdefault 李嘉誠 房地產 如果dict中已經存在了.那麼se...
字典的增刪改查
可以儲存大量的資料,有較強的關聯性,容器型資料型別 dict 資料型別的分類 可變與不可變 可變 不可雜湊 的資料型別 list dict set 不可變 可雜湊 的資料型別 str bool int tuple 字典是用 括起來,以鍵值對形似儲存的容器型資料型別 字典的鍵是不可變的 如int st...