fn main(){ let s = getline(); let s = s.trim(); let length:isize = s.len() as isize; let c = s.chars().collect::>(); let mut ans:i32 = -1; // println!("{:?}", s.char_at()); for i in 0..length { ans = check_char(&c, length, length-i); if ans != 0 { break; } } println!("{}", ans); } fn getline() -> String{ let mut __ret=String::new(); std::io::stdin().read_line(&mut __ret).ok(); return __ret; } fn check_char(c: &Vec, length:isize, check_len: isize) -> i32{ let mut count_a:i32 = 0; let mut count_b:i32 = 0; let mut i:isize = 0; //count A //count B while i + check_len <= length { count_a = 0; count_b = 0; for j in i..(check_len+i) { if c[j as usize] == 'A' {count_a+=1;} if c[j as usize] == 'B' {count_b+=1;} } // println!("{}..{} countA={},countB={}", i, check_len+i, count_a, count_b); if count_a == count_b {break;} i+=1; } // println!("{:?}", c); if count_a == count_b && count_a !=0 {return count_a+count_b} return 0; }