本文收录于专栏:算法之翼
https://blog.csdn.net/weixin_52908342/category_10943144.html
订阅后本专栏全部文章可见。
本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法完整代码和详细的解析。
题干
假定输入字符串只包含字母和号。编写函数fun:只删除字符串前导和尾部的号,串中字母之间的*号都不删除。
运行效果如下:
解题思路
要解决这个问题,可以按照以下步骤进行:
- 遍历输入字符串,找到第一个非 * 字符的位置,这个位置之前的所有 * 字符都是前导 *。
- 同样地,从字符串的末尾开始向前遍历,找到第一个非 * 字符的位置,这个位置之后的所有 * 字符都是尾部 *。
- 从第一个非 * 字符的位置到倒数第一个非 * 字符的位置之间的所有字符都是有效字符,不需要删除。
通过这三个步骤,你可以确定前导和尾部的 * 字符,以及有效的字母字符的范围。然后你可以构造一个新的字符串,只包含这个范围内的字符,即可得到去除前导和尾部 * 字符的结果。