刚开始想采用长度26的bool数组分别代表a-z是否出现在substring中过
Wrong Answer:
1.大写字母和数字未考虑->添加ASCII码分别处理
2.遇到重复字母时,清空记录后忘了重新添加新字段中这一次的记录
3.“dvdf”情况->清零只处理到重复字母之前
4./#等其他字符未处理->改成使用HashMap
5.TimeLimitExceeded->改成使用HashSet,每次循环中生成新set(自动清空),避免在一个set中进行复杂操作
6.Accepted提高效率->SlideWindow算法,记录并更新左右两界限的坐标
HashMap迭代时无法进行删除,删除需要使用iterator迭代器;而HashSet可以,通过hashset.remove(...)。
要注意边界情况的处理,比如空字符串和只有一个字符的字符串。
PS:4其实可以继续使用数组进行改进,因为ASCII码一共有128个,数组长度设为128即可装下所有字符值。