Phone List HDU - 1671
题目链接:
题目:
给出一个电话号码列表,确定它是否一致,因为没有数字是另一个号码的前缀。 假设电话目录列出了这些数字: 1. Emergency 911 2. Alice 97 625 999 3. Bob 91 12 54 26 在这种情况下,无法呼叫Bob,因为只要您拨打了Bob的电话号码的前三位数字,中心就会将您的呼叫转接到紧急线路。 所以这个列表不一致。输入 第一行输入给出一个整数,1 <= t <= 40,即测试用例的数量。 每个测试用例以n(电话号码的数量)在单独的行上开始,1 <= n <= 10000.然后是n行,每行有一个唯一的电话号码。 电话号码是最多十位数的序列。产量 对于每个测试用例,如果列表一致则输出“YES”,否则输出“NO”。
思路:将这些电话号码插入字典树中,只要出现一个电话号码是另一个电话号码的前缀,那么就输出“NO”否则输出“YES”,
这题要注意内存的控制,否则会MLE,还有不能n方来利用find前缀函数判断每一个字符串在其他字符串是否是前缀,否则会TLE,
只要在将电话号码插入字典树的时候判断p->num是否不为0即可,如果不为0就break,很好的避免了n方判断、
// // Created by HJYL on 2019/8/20.//#include #include #include