删除子串,只要是原串中有相同的子串就删掉,不管有多少个,返回子串个数;
时间: 2023-05-24 08:05:31 浏览: 75
算法步骤:
1. 初始化子串个数为0;
2. 遍历原串,对于每个字符,以其为起点向后查找子串;
3. 如果找到子串,则将子串删除,并将子串个数加1;
4. 返回子串个数。
代码实现:
```python
def delete_substring(s):
count = 0
i = 0
while i < len(s):
j = i + 1
while j < len(s) + 1:
if s[i:j] in s[j:]:
s = s.replace(s[i:j], "")
count += 1
else:
j += 1
i += 1
return count
```
测试:
```python
s = "hello world"
print(delete_substring(s)) # 输出 2,因为原串中有两个重复的子串 "l"。
```
相关问题
用java编写编写程序求两个正整数的最大公约数。 9. 删除一个字符串中指定的所有某个字符,返回清理后的字符串。 n 输入字符串:aabbccddffeedd; n 删除字符:b,则程序输出:aaccddffeedd n 删除子串,只要是原串中有相同的子串就删掉,不管有多少个,返回子串个数和删除后的字符串
用Java编写程序求两个正整数的最大公约数:
```
public static int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
```
删除一个字符串中指定的所有某个字符,返回清理后的字符串:
```
public static String removeChar(String str, char c) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if (ch != c) {
sb.append(ch);
}
}
return sb.toString();
}
```
输入字符串:aabbccddffeedd;删除字符:b,则程序输出:aaccddffeedd
```
String str = "aabbccddffeedd";
char c = 'b';
String result = removeChar(str, c);
System.out.println(result);
```
输出:aaccddffeedd
删除子串,只要是原串中有相同的子串就删掉,不管有多少个,返回子串个数和删除后的字符串:
```
public static int removeSubstr(String str, String substr) {
int count = 0;
int index;
while ((index = str.indexOf(substr)) != -1) {
count++;
str = str.substring(0, index) + str.substring(index + substr.length());
}
System.out.println("删除了" + count + "个子串,结果为:" + str);
return count;
}
```
输入字符串:aabbccddffeedd;删除子串:dd,则程序输出:删除了2个子串,结果为:aabbcceeffee
```
String str = "aabbccddffeedd";
String substr = "dd";
int count = removeSubstr(str, substr);
```
输出:删除了2个子串,结果为:aabbcceeffee
当一个字符串中出现指定子串时就删除它
您可以使用Python内置的replace()方法来删除指定的子串。例如,假设您要删除字符串s中的子串“abc”,您可以使用以下代码:
```
s = "hello abc world abc"
s = s.replace("abc", "")
print(s)
```
这将输出:
```
hello world
```
replace()方法将在字符串中查找所有出现的子串并将它们替换为指定的字符串(在这个例子中是空字符串)。如果您只想删除第一个出现的子串,您可以使用replace()方法的第三个参数来指定替换次数,如下所示:
```
s = "hello abc world abc"
s = s.replace("abc", "", 1)
print(s)
```
这将输出:
```
hello world abc
```
在这个例子中,replace()方法只替换了第一个出现的子串“abc”,而保留了第二个子串。