reference:
https://leetcode.com/discuss/83824/7-lines-easy-java-solution
https://leetcode.com/discuss/105664/clear-c-solution
c++
class Solution {
public:
bool isValidSerialization(string preorder) {
int degree = 1;
string x;
stringstream ss(preorder);
while (getline(ss, x, ',')) {
degree--;
if (degree < 0) return false;
if (x != "#") degree += 2;
}
return degree == 0;
}
};
python
class Solution(object):
def isValidSerialization(self, preorder):
"""
:type preorder: str
:rtype: bool
"""
s = preorder.split(',')
degree = 1
for x in s:
degree -= 1 # in degree
if degree<0:return False
if x != '#': degree += 2 # out degree
return degree == 0