当前位置: 面试刷题>> 寻找最长01子串 (经典算法题500道)
### 题目描述补充
题目:寻找最长01子串
**题目描述**:给定一个只包含0和1的字符串,你需要找出该字符串中最长的、由0和1交替出现的子串(即010101...或101010...),并返回这个最长子串的长度。如果字符串为空或不存在这样的子串,则返回0。
**示例**:
- 输入:"0101010"
- 输出:6
- 输入:"0100"
- 输出:2
- 输入:"111000"
- 输出:2
- 输入:""
- 输出:0
### PHP 示例代码
```php
```
### Python 示例代码
```python
def find_max_alternating_length(s):
if not s:
return 0
max_length = 1
current_length = 1
for i in range(1, len(s)):
if s[i] != s[i-1]:
current_length += 1
max_length = max(max_length, current_length)
else:
current_length = 1
return max_length
# 测试示例
print(find_max_alternating_length("0101010")) # 输出: 6
print(find_max_alternating_length("0100")) # 输出: 2
print(find_max_alternating_length("111000")) # 输出: 2
print(find_max_alternating_length("")) # 输出: 0
```
### JavaScript 示例代码
```javascript
function findMaxAlternatingLength(s) {
if (s.length === 0) {
return 0;
}
let maxLength = 1;
let currentLength = 1;
for (let i = 1; i < s.length; i++) {
if (s[i] !== s[i-1]) {
currentLength++;
maxLength = Math.max(maxLength, currentLength);
} else {
currentLength = 1;
}
}
return maxLength;
}
// 测试示例
console.log(findMaxAlternatingLength("0101010")); // 输出: 6
console.log(findMaxAlternatingLength("0100")); // 输出: 2
console.log(findMaxAlternatingLength("111000")); // 输出: 2
console.log(findMaxAlternatingLength("")); // 输出: 0
```
码小课网站中有更多相关内容分享给大家学习,包括算法、数据结构、编程技巧等,欢迎访问学习。