当前位置: 面试刷题>> 寻找最长01子串 (经典算法题500道)


题目描述补充

题目:寻找最长01子串

题目描述:给定一个只包含0和1的字符串,你需要找出该字符串中最长的、由0和1交替出现的子串(即010101...或101010...),并返回这个最长子串的长度。如果字符串为空或不存在这样的子串,则返回0。

示例

  • 输入:"0101010"

  • 输出:6

  • 输入:"0100"

  • 输出:2

  • 输入:"111000"

  • 输出:2

  • 输入:""

  • 输出:0

PHP 示例代码

<?php
function findMaxAlternatingLength($s) {
    if (empty($s)) {
        return 0;
    }
    
    $maxLength = 1;
    $currentLength = 1;
    
    for ($i = 1; $i < strlen($s); $i++) {
        if ($s[$i] != $s[$i-1]) {
            $currentLength++;
            $maxLength = max($maxLength, $currentLength);
        } else {
            $currentLength = 1;
        }
    }
    
    return $maxLength;
}

// 测试示例
echo findMaxAlternatingLength("0101010"); // 输出: 6
echo "\n";
echo findMaxAlternatingLength("0100"); // 输出: 2
echo "\n";
echo findMaxAlternatingLength("111000"); // 输出: 2
echo "\n";
echo findMaxAlternatingLength(""); // 输出: 0
?>

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 示例代码

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

码小课网站中有更多相关内容分享给大家学习,包括算法、数据结构、编程技巧等,欢迎访问学习。