假定输入的字符串只包含字母和*号,编写fun函数 只保留尾部的*
时间: 2023-12-06 17:00:36 浏览: 99
可以使用Python来编写这个函数。
```python
def fun(s):
if not s:
return ""
i = len(s) - 1
while i >= 0 and s[i] == '*':
i -= 1
return s[:i+1]
```
这个函数首先检查输入的字符串是否为空,如果是空字符串则直接返回空字符串。然后使用一个循环从字符串的末尾开始向前遍历,直到找到第一个不是*号的字符为止,然后返回这个字符之前的子字符串。这样就可以实现只保留字符串尾部的*号的功能。
例如,对于输入"abc***",函数返回"abc";对于输入"**",函数返回""。这个函数可以有效地处理输入字符串只包含字母和*号的情况,保留尾部的*号。
相关问题
假定输入的字符串中只包含字母和*号。请编写函数fun, 它的功能是:将字符串中的前导*号全部删除, 中间和尾部的*号不删除。例如,若字符串中的内容为*******A*BC*DEF*G**,删除后,字符
以下是实现该功能的函数fun的代码实现:
```python
def fun(s):
i = 0
while s[i] == '*':
i += 1
return s[i:]
```
这个函数会遍历输入字符串s,将前导的*号全部删除,然后返回剩余部分的字符串。
用c++4. 假定输入的字符串中只包含字母和*号。请编写函数void fun(char *a),其功能是除了尾部的*号之外,将字符串中的其它的*号全部删除。 例如,字符串中的内容****A*BC*DEF*G*******。删除后,字符串中的内容应当是ABCDEFG*******。
你可以使用两个指针来解决这个问题。一个指针用于遍历字符串,另一个指针用于记录有效字符的位置。具体的实现如下:
```cpp
void fun(char *a) {
if (a == nullptr) {
return;
}
int len = strlen(a);
int validIndex = 0; // 记录有效字符的位置
for (int i = 0; i < len; i++) {
if (a[i] != '*') {
a[validIndex++] = a[i];
}
}
// 将剩余的字符设置为*
for (int i = validIndex; i < len; i++) {
a[i] = '*';
}
}
```
这个函数首先判断输入指针是否为空,然后遍历字符串,将非*字符复制到有效字符的位置,并更新有效字符的位置。最后,将剩余的字符设置为*。
阅读全文