HDU1004

HDU 1004

题目:输入包含多个测试用例。每个测试用例都以数字n (0 < n <= 1000)开始,即分发的气球总数。接下来的n行各包含一种颜色。气球的颜色由最多15个小写字母组成。n = 0的测试用例终止输入。

(有参考大佬的代码)

C语言

#include<stdio.h>

void select(int n);

int main(void){
int n;          
scanf("%d",&n);
select(n);
return 0;

}

void select(int n){
int ball[1000][20];     //存放每个气球的个数
int num[1000]={0};          //存放最大气球数目
int i,j,k;
int max=0;              //最大的气球数
  for(i=0;i<1000;i++)                       //清空计数器数组的值
        {
            num[i]=0;
        }
  for(i=0;i<n;i++){
    scanf("%s",ball[i]);
	for(j=0;j<i;j++){
		for(k=0;ball[i][k]!='\0'&&ball[j][k]!='\0';k++){
			if(ball[j][k]==ball[i][k]){}
			else{
			break;
			}
		}
			if(ball[i][k]=='\0'&&ball[j][k]=='\0'){
			num[j]++;
			break;
			}
		
	}
	
	if(j==i){
	  num[i]++;
	}
  }
  for(i=0;i<n;i++){
	  if(num[max]>num[i]){
	  max=i;
	  
	  }
  
  }
  printf("%s\n",ball[max]);
}

java

package HDU1004;

import java.util.Arrays;
import java.util.Scanner;

public class hud1004 {
   public static void main(String args[]) {
	   Scanner sc=new Scanner(System.in);
	   System.out.println("请输入气球个数:");
	   int n=sc.nextInt();
	   int max=0;
	   String maxball="";
	   String []ball=new String[n];
	   for(int i=0;i<n;i++) {
		   ball[i]=sc.next();
		   
	   }
	   Arrays.sort(ball);
	   for(int i=0;i<n;i++) {
		   System.out.println(ball[i]);
		   
	   }
	   
	   int temp=0;
	   if(n==1) {
		   System.out.println(ball[0]);
	   }
	   else {
		   for(int i=0;i<n-1;i++) {
			   if(ball[i + 1].equals(ball[i])) {  //equal比较对象的内容,==比较对象的地址
				   temp++;
				   if(temp>max) {
					   max=temp;
					   maxball=ball[i];
					 
				   }
			   }else {
				   temp=0;//清零
			   }
		   }
		   System.out.println(maxball);
	   }
   }
}

字符串是对象类型,所以不能用简单的判断
equals()比较的是对象的内容(区分字母的大小写格式)是否相等
”比较两个对象时,比较的是两个对象的内存地址,所以不相等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值