S = gets.chomp def dfs(idx, str, has_char, has_num, has_symbol) cnt = 0 if idx == str.size if has_char && has_num && has_symbol return 1 else return 0 end end case S[idx] when 'l' cnt += dfs(idx + 1, str, has_char, true, has_symbol) when 'o' cnt += dfs(idx + 1, str, has_char, true, has_symbol) when 'a' cnt += dfs(idx + 1, str, has_char, has_num, true) when 's' cnt += dfs(idx + 1, str, has_char, has_num, true) end cnt += dfs(idx + 1, str, true, has_num, has_symbol) cnt end puts dfs(0, S, false, false, false)