题目解析
本题考察字符串处理。
题目描述中说
除了 1,2 里面定义的字符以外其他的所有字符,都是非法字符,作为字符串的间隔符处理,倒序后间隔符作为空格处理;
即非数字、字母、'-' 的字符都是作为单词分隔符,因此我们可以按此逻辑对输入的字符串进行分割,得到一个单词数组words。
接下来,倒序遍历words中每一个单词word,对word处理如下:
- 如果word首尾含有'-',则需要去除首尾'-'
- 如果word中间含有"--",则需要将word按照"--"分割为多个subWords单词数组
- 倒序遍历subWords单词数组,将不为空串的元素拼接到题解ans中
2023.07.20
连续出现 2 个 “-” 及以上时视为字符串间隔符
这里之前把“及以上”看漏了,因此上面对于word的处理中,第2步不能按照"--"分割,而是应该按照正则"-{2,}"分割
2024.8.16 新增一个更优的双指针解法