abc bc
YES NO
1001 Strange Class
这是一个简单题,先判断长度是不是3的倍数。
然后再判断前中后三段里面的字符是不是一样。
最后判断一下这三段之间的字符是不一样的。
import java.io.*;
import java.util.*;
public class Main
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
while (input.hasNext())
{
boolean flag = true;
String str = input.nextLine();
char c[] = str.toCharArray();
if (c.length % 3 != 0) //不是3的倍数直接false
{
flag = false;
}
for (int i = 1; i < (c.length / 3); i++) //前1/3不相等直接false
{
if (c[i] != c[i - 1])
{
flag = false;
}
}
for (int i = c.length / 3 + 1; i < (c.length * 2 / 3); i++) //1/3到2/3的部分不相等直接false
{
if (c[i] != c[i - 1])
{
flag = false;
}
}
for (int i = c.length * 2 / 3 + 1; i < c.length; i++) //2/3到最后的部分不相等直接false
{
if (c[i] != c[i - 1])
{
flag = false;
}
}
if (!(c[0] != c[c.length / 3] && c[0] != c[c.length - 1] && c[c.length / 3] != c[c.length - 1]))
{
flag = false; //分成三部分的数要互不相同!
}
if (flag)
{
System.out.println("YES");
} else
{
System.out.println("NO");
}
}
}
}
在Vivid的学校里,有一个奇怪的班级(SC).在SC里,这些学生的名字非常奇怪。他们的名字形式是这样的anbncn (a,b,c两两不相同。).例如,叫”abc”,”ddppqq”的学生是在SC里的,然而叫”aaa”,”ab”,”ddppqqq”的同学并不是在SC里的。
Vivid交了许多的朋友,他想知道他们之中哪些人是在SC里的。
多组测试数据(大概10 组),每一个数据在一行中给出一个字符串S,代表Vivid一个朋友的名字。 请处理到文件末尾。 [参数约定]1≤|S|≤10. |S| 是指S的长度. S 只包含小写字母.
对于每一个数据,如果Vivid的朋友是SC里的,那么输出YES,否则输出NO。
abc bc
YES NO
HDU-5198-Strange Class(Java+注意细节!)
原文:http://blog.csdn.net/qq_16542775/article/details/45342275