🌕🌗🌑🌑🌑

# 題目連結

  • 題目連結
  • Online Judge
  • uDebug

# 題目說明

Time limit: 3.000 seconds

# 題目

A character string is said to have period k if it can be formed by concatenating one or more repetitions of another string of length k . For example, the string ”abcabcabcabc” has period 3 , since it is formed by 4 repetitions of the string ”abc” . It also has periods 6 (two repetitions of ”abcabc” ) and 12 (one repetition of ”abcabcabcabc” ).

Write a program to read a character string and determine its smallest period.

# Input

The first line oif the input file will contain a single integer N indicating how many test case that your program will test followed by a blank line. Each test case will contain a single character string of up to 80 non-blank characters. Two consecutive input will separated by a blank line.

# Output

An integer denoting the smallest period of the input string for each input. Two consecutive output are separated by a blank line.

# Sample Input

1

HoHoHo

# Sample Output

2

# 解題技巧

暴力解,利用擷取 substring 然後再重新組裝 time = inputstring.length() / substring.length() 次,當 inputstring 與重新組裝的字串相同就表示 substringinputstring 重複的字串,而 substring.length() 及為答案。

# Solution

Main.java
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        for (int i = 0; i < N; i++) {
            String str = sc.next();
            if (i != 0)
                System.out.println();
            int len = str.length();
            for (int j = 0; j < len; j++) {
                int subLen = j + 1;
                if(len % subLen != 0)
                    continue;
                String subStr = str.substring(0, subLen);
                int time = len / subLen;
                String compare = "";
                for(int k = 0; k < time; k++){
                    compare += subStr;
                }
                if(compare.equals(str)){
                    System.out.println(subLen);
                    break;
                }
            }
        }
        sc.close();
    }
}
單字

** **
!! !!

片語 & 搭配詞

!! !!