File tree Expand file tree Collapse file tree 1 file changed +51
-0
lines changed
Expand file tree Collapse file tree 1 file changed +51
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.io.BufferedReader ;
3+ import java.io.IOException ;
4+ import java.io.InputStreamReader ;
5+
6+ public class Main {
7+ private static BufferedReader br;
8+ private static int n;
9+ private static StringBuilder answer;
10+ private static boolean found;
11+
12+ public static void main (String [] args ) throws IOException {
13+ br = new BufferedReader (new InputStreamReader (System . in));
14+ n = Integer . parseInt(br. readLine());
15+ answer = new StringBuilder ();
16+ found = false ;
17+ recur(0 , new StringBuilder ());
18+ System . out. println(answer);
19+ }
20+
21+ private static void recur (int depth , StringBuilder sb ) {
22+ if (found) return ;
23+
24+ if (depth == n) {
25+ answer. append(sb);
26+ found = true ;
27+ return ;
28+ }
29+
30+ for (int i = 1 ; i <= 3 ; i++ ) {
31+ sb. append(i);
32+ if (isGood(sb)) {
33+ recur(depth + 1 , sb);
34+ }
35+ sb. deleteCharAt(sb. length() - 1 );
36+ }
37+ }
38+
39+ private static boolean isGood (StringBuilder sb ) {
40+ int len = sb. length();
41+ for (int size = 1 ; size <= len / 2 ; size++ ) {
42+ String left = sb. substring(len - size * 2 , len - size);
43+ String right = sb. substring(len - size, len);
44+ if (left. equals(right)) {
45+ return false ;
46+ }
47+ }
48+ return true ;
49+ }
50+ }
51+ ```
You can’t perform that action at this time.
0 commit comments