1、题目描述:
对一行给定的字符串进行反转输出,同时去除中间不满足条件的分隔符输入字符串:I am an 20-years out--standing @ * -stu- dent,去除分割符并反转之后,输出字符串(子字符串以一个空格隔开):dent stu standing out 20-years an am I
分割符描述如下:
1、除了字母、数字和 - 之外,其他的都是分割符,如输入字符串中的@ *等都属于分割符
2、20-years中的'-' 表示的是连接符,即当‘-’两边都有字母、数字时,‘-’就属于连接符,否则属于分割符
3、out--standing中的‘--’表示分割符,应该拆分为两个字字符串out 和 standing
2、思路:剑指offer翻转单词变种
由于字符串中含有分割符,因此要去掉分隔符。
首先,需要去除字符串中的分隔符:借助栈stack来实现,依次遍历字符串中的元素,并插入stack中。字母数字直接插入;分割符不插入;空格需判断栈顶是否有空格再插入;“-”要判断前后元素是否为字母或数字来判断是否为分隔符。
然后,将栈中的元素依次弹出,即实现了翻转,又去掉了分隔符。
最后,将字符中的每个单词进行翻转,这就是剑指offer中的翻转单词的一步。
3、代码实现:
来源:https://www.cnblogs.com/guoyu1/p/12389175.html