class Solution {
public boolean isValidSerialization(String preorder) {
/**
二叉树特点: 叶子结点=非叶子节点+1
在最后一个位置之前的每一个位置 叶子结点 的数量<=非叶子节点的数量
*/
int YZ=0;//叶子
int FYZ=0;//非叶子
for(int i=0;i<preorder.length();i++){
char c=preorder.charAt(i);
if(c=='#'){
YZ++;
}else if(c!=','){
//说明是非叶子
FYZ++;
//有可能是92 那么 先9 后2 是一个
//所以得往后移动
while(i<preorder.length()&&Character.isDigit(preorder.charAt(i))){
i++;
}
//s.charAt(i)不是一个数了 退出
i--;//退一个 回到数的末尾
}
if(i<preorder.length()-1&&YZ>FYZ) return false;
}
return (YZ==FYZ+1)?true:false;
}
}