在用于插入和搜索正常路径的 trie 中,ascii 1-31 是否值得考虑?
In a trie for inserting and searching normal paths, are ascii 1-31 worth considering?
我正在研究一个 trie 数据结构,它可以插入和搜索正常路径。
路径可以包含来自 unicode 的任何字符,因此为了在 utf-8 中完全表示它,trie 中的数组需要包含所有 256 个 ascii 的下一个节点。
但我也担心 space 和 trie 占用的插入时间。
设置我的 trie 的条件很少会插入 unicode 字符(我的意思是 128-255 ascii)。所以我只是设置了一个 if 条件来拒绝包含 ascii 127 以上的路径。我认为 ascii 1-31 也不相关,尽管我不确定这一点。由于 1-31 个字符就像回车 return、esc 等,我可以继续循环而不插入它们吗?比如在真实场景中是否可能遇到因为 ascii 1-31 而实际上可区分的路径?
回答这个老问题,在 macOS
ascii 13 用于表示可能出现在许多路径中的自定义图标。感谢@EricPostpischil 在评论中告诉我们。
范围在 1-31
之间的所有其他字符在路径中出现得很少。
另外,macOS
用户大多有一个case-insensitive路径,所以一般考虑小写和大写也是没有用的。
PS:
虽然这个问题看起来是基于意见的,但实际上不是,因为它可以很简洁地回答。它会尝试询问字符在 macOS
上的路径中出现的频率。 (不好意思标题乱了,那时候我是个菜鸟,现在改了,评论都乱了)
我正在研究一个 trie 数据结构,它可以插入和搜索正常路径。
路径可以包含来自 unicode 的任何字符,因此为了在 utf-8 中完全表示它,trie 中的数组需要包含所有 256 个 ascii 的下一个节点。
但我也担心 space 和 trie 占用的插入时间。 设置我的 trie 的条件很少会插入 unicode 字符(我的意思是 128-255 ascii)。所以我只是设置了一个 if 条件来拒绝包含 ascii 127 以上的路径。我认为 ascii 1-31 也不相关,尽管我不确定这一点。由于 1-31 个字符就像回车 return、esc 等,我可以继续循环而不插入它们吗?比如在真实场景中是否可能遇到因为 ascii 1-31 而实际上可区分的路径?
回答这个老问题,在 macOS
ascii 13 用于表示可能出现在许多路径中的自定义图标。感谢@EricPostpischil 在评论中告诉我们。
范围在 1-31
之间的所有其他字符在路径中出现得很少。
另外,macOS
用户大多有一个case-insensitive路径,所以一般考虑小写和大写也是没有用的。
PS:
虽然这个问题看起来是基于意见的,但实际上不是,因为它可以很简洁地回答。它会尝试询问字符在 macOS
上的路径中出现的频率。 (不好意思标题乱了,那时候我是个菜鸟,现在改了,评论都乱了)