当前位置: 面试刷题>> 寻找最长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 ``` 码小课网站中有更多相关内容分享给大家学习,包括算法、数据结构、编程技巧等,欢迎访问学习。
推荐面试题