您的位置:首页 > 编程语言 > Java开发

杭电oj2072,2091字符串java实现

2018-03-10 21:08 876 查看
2072题目链接

思路:输入String,使用字符串分割,分割成小的字符数组,使用java的List储存不同单词,每次比较若全部不同则存入,返回List长度注意:不要用数组,数组长度无法改变并且数组处理空字符串和回车会很麻烦,附上代码

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class 杭电2072 {
public static void main(String []args){
Scanner sc=new Scanner(System.in);
while(sc.hasNext())
{
String a=sc.nextLine();

boolean bre = false;
String b[]=a.split(" ");
for(int i=0;i<b.length;i++)
{
if(b[i].contains("#"))
bre=true;
}
if(bre)break;
List list=new ArrayList();
/*
* 算不同单词数
*/
for(int i=0;i<b.length;i++)
{
if(!list.contains(b[i]))
list.add(b[i]);
}
if(list.contains(""))
{
System.out.println(list.size()-1);
}
else
System.out.println(list.size());

}
}

}


2091:题目链接

注意点:1:三角形的右侧没有多余的空格

2:相邻三角形有空行,输出第一个三角形没有空行,输出第二个以及以后才有空行。一个一个测试看不出可以复制多组测试数据直接粘贴进去测试。

代码如下:

import java.util.Scanner;
public class 杭电2091 {
public static void main(String []args){
Scanner sc=new Scanner(System.in);
int u=1;
while(sc.hasNext())
{
u++;
String a=sc.nextLine();

String b[]=a.split(" ");
char c=b[0].charAt(0);
if(c=='@') {break;}
int d=Integer.parseInt(b[1]);
if(u>2)
{System.out.println();}
for(int i=0;i<d;i++)
{
if(i==d-1)
{
for(int j=0;j<2*d-1;j++)
{System.out.print(c);}
}
else {
for(int j=0;j<=(2*d-1)/2+i;j++)
if(i==Math.abs(j-(2*d-1)/2))
{
System.out.print(c);
}
else
System.out.print(" ");
}

System.out.println();

}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: