规定字符串中只包含字母和*号,例如字符串中的内容为:*******A*BC*DEF*G*****,定义一个子函数fun(),它的功能是:将字符串中前面和后面的*号全部删除,中间的*号不删除,处理后的字符串是:A*BC*DEF*G
时间: 2023-12-04 07:41:18 浏览: 70
```python
def fun(p, s):
# 从后往前找到第一个不是*的字符
while p >= 0 and s[p] == '*':
p -= 1
# 从前往后找到第一个不是*的字符
i = 0
while i <= p and s[i] == '*':
i += 1
# 删除前后的*号
return s[i:p+1]
s = '*******A*BC*DEF*G*****'
result = fun(len(s)-1, s)
print(result) # 输出:A*BC*DEF*G
```
--相关问题--:
1. 如何判断一个字符串中是否只包含字母和*号?
2. 如
相关问题
规定字符串中只包含字母和*号,例如字符串中的内容为:*******A*BC*DEF*G*****,定义一个子函数fun(),它的功能是:统计前面和后面星号的个数
```python
def fun(p, s):
# 统计前面的星号个数
i = 0
while i <= p and s[i] == '*':
i += 1
pre_star_num = i
# 统计后面的星号个数
j = p
while j >= 0 and s[j] == '*':
j -= 1
suf_star_num = p - j
return pre_star_num, suf_star_num
# 测试
s = '*******A*BC*DEF*G*****'
p = len(s) - 1
pre_star_num, suf_star_num = fun(p, s)
print('前面的星号个数为:', pre_star_num) # 输出:7
print('后面的星号个数为:', suf_star_num) # 输出:5
```
--相关问题--:
1. 如何判断一个字符串中是否只包含字母和*号?
2. 如
规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:只删除字符 前导和
题目中要求编写函数fun,功能是只删除字符串中的前导和后导的字符。
假设输入的字符串为str,我们可以通过以下步骤实现所需功能:
1. 定义一个变量i,初始化为0,用于记录首个不为*号的字符的下标。
2. 从字符串的开头开始遍历,如果当前字符为*号,则将i加1;否则跳出循环。
3. 定义一个变量j,初始化为字符串长度减1,用于记录最后一个不为*号的字符的下标。
4. 从字符串的末尾开始遍历,如果当前字符为*号,则将j减1;否则跳出循环。
5. 判断i的值与j的值,如果i大于等于j,则说明字符串全由*号组成,此时返回空串。
6. 假设i的值为m,j的值为n,切片截取字符串str[m:n+1]即为去除前导和后导的字符后的字符串。返回该字符串。
具体代码如下所示:
```python
def fun(str):
i = 0
while i < len(str) and str[i] == '*':
i += 1
j = len(str) - 1
while j >= 0 and str[j] == '*':
j -= 1
if i >= j:
return ''
return str[i:j+1]
```
测试示例:
```python
print(fun("*abc")) # 输出:"abc"
print(fun("****")) # 输出:""
print(fun("a**bc*")) # 输出:"a**bc"
print(fun("*****")) # 输出:""
print(fun("*")) # 输出:""
```
注意:为了方便阅读和理解,示例代码中的变量名已更改。实际编写代码时,应尽量使用具有描述性的变量名,避免使用关键字作为变量名。
阅读全文