WUSTOJ 1335: Similar Word(Java)
题目链接:1335: Similar Word
Description
It was a crummy day for Lur. He failed to pass to the CET-6 (College English Test Band-6). Looking back on how it was in last year gone by, he gradually noticed he had fled too many English Lessons. But he determines to memorize words on his bed, not in the classroom. You know, it is not that easy to pass the test mainly because the large amount of born words.
Lur is intelligent on games, never English. He cann’t learn the similar words by heart. He always choose to select a word to learn from the similar words . For him, two words are similar if and only if one word can equal to the other by multiple cyclic shift(at least 1). For example, “car” and “arc” are similar words, while “car” and “rca” are also similar words. To save more time to play games, Lur want to know wether two words are similar words faster, he asks you to write a program to tell him, can you help him?
Input
There are multiple test cases. Each case contains two lines. Each line contains a word.
You can assume that length(W)<=105. Ended by EOF.
Output
Output “yes” in a single line if two words are similar, otherwise you should output “no” in a single line.
Sample Input
car
arc
car
cra
car
car
Sample Output
yes
no
no
分析💬
长度不同肯定输出no
,长度相同逐位比较即可。注意:单词一样也输出no
。
代码💻
/**
* Time 245ms
* @author wowpH
* @version 1.0
* @date 2019年6月29日下午1:32:19
* Environment: Windows 10
* IDE Version: Eclipse 2019-3
* JDK Version: JDK1.8.0_112
*/
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
char[] w1 = sc.next().toCharArray();
char[] w2 = sc.next().toCharArray();
if (w1.length != w2.length) {
System.out.println("no");
continue;
}
boolean same = false;
int i;
for (i = 0; i < w2.length; ++i) {
same = true;
for (int j = 0; j < w2.length; ++j) {
if (w1[j] != w2[(i + j) % w2.length]) {
same = false;
break;
}
}
if (true == same) {
break;
}
}
if (true == same && 0 != i) {
System.out.println("yes");
} else {
System.out.println("no");
}
}
sc.close();
}
}