1422. Maximum Score After Splitting a String LeetCode Solution
In this guide, you will get 1422. Maximum Score After Splitting a String LeetCode Solution with the best time and space complexity. The solution to Maximum Score After Splitting a String problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.
Table of Contents
- Problem Statement
- Complexity Analysis
- Maximum Score After Splitting a String solution in C++
- Maximum Score After Splitting a String solution in Java
- Maximum Score After Splitting a String solution in Python
- Additional Resources

Problem Statement of Maximum Score After Splitting a String
Given a string s of zeros and ones, return the maximum score after splitting the string into two non-empty substrings (i.e. left substring and right substring).
The score after splitting a string is the number of zeros in the left substring plus the number of ones in the right substring.
Example 1:
Input: s = “011101”
Output: 5
Explanation:
All possible ways of splitting s into two non-empty substrings are:
left = “0” and right = “11101”, score = 1 + 4 = 5
left = “01” and right = “1101”, score = 1 + 3 = 4
left = “011” and right = “101”, score = 1 + 2 = 3
left = “0111” and right = “01”, score = 1 + 1 = 2
left = “01110” and right = “1”, score = 2 + 1 = 3
Example 2:
Input: s = “00111”
Output: 5
Explanation: When left = “00” and right = “111”, we get the maximum score = 2 + 3 = 5
Example 3:
Input: s = “1111”
Output: 3
Constraints:
2 <= s.length <= 500
The string s consists of characters '0' and '1' only.
Complexity Analysis
- Time Complexity: O(n)
- Space Complexity: O(1)
1422. Maximum Score After Splitting a String LeetCode Solution in C++
class Solution {
public:
int maxScore(string s) {
int ans = 0;
int zeros = 0;
int ones = ranges::count(s, '1');
for (int i = 0; i + 1 < s.size(); ++i) {
if (s[i] == '0')
++zeros;
else
--ones;
ans = max(ans, zeros + ones);
}
return ans;
}
};
/* code provided by PROGIEZ */
1422. Maximum Score After Splitting a String LeetCode Solution in Java
class Solution {
public int maxScore(String s) {
int ans = 0;
int zeros = 0;
int ones = (int) s.chars().filter(c -> c == '1').count();
for (int i = 0; i + 1 < s.length(); ++i) {
if (s.charAt(i) == '0')
++zeros;
else
--ones;
ans = Math.max(ans, zeros + ones);
}
return ans;
}
}
// code provided by PROGIEZ
1422. Maximum Score After Splitting a String LeetCode Solution in Python
class Solution:
def maxScore(self, s: str) -> int:
ans = 0
zeros = 0
ones = s.count('1')
for i in range(len(s) - 1):
if s[i] == '0':
zeros += 1
else:
ones -= 1
ans = max(ans, zeros + ones)
return ans
# code by PROGIEZ
Additional Resources
- Explore all LeetCode problem solutions at Progiez here
- Explore all problems on LeetCode website here
Happy Coding! Keep following PROGIEZ for more updates and solutions.