程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> hdu_1002_Let the Balloon Rise (模擬)

hdu_1002_Let the Balloon Rise (模擬)

編輯:關於C++

 

題意:輸入n個氣球的顏色,(氣球的顏色是一個字符串,最多有15個小寫字母),輸出最多相同顏色氣球的顏色,輸入0結束程序。

保證每組數據都有唯一且具有最多的一種顏色的氣球。

解題思路:利用string類型的數組保存n個氣球的顏色

樣例:

1)a b a d e

2)a b a d e

a->a b a d e

b->a b a d e

c->a b a d e

d->a b a d e

1)中的每個元素與2)中的每個元素比較,相等則cnt++,且最終把最大的元素個數保存在word中。

記錄最大元素個數的下標,保存在flag中。

 

#include 
#include 
using namespace std;
int main(int argc, char *argv[])
{
	int n;
	string color[1010];//string類型的數組 
	while(1)
	{
		string color[1010] = {};//初始化為空的數組,沒有這個初始化會WA 
		cin >> n;
		if(n == 0)
			return 0;
			
		for(int i = 0;i < n;i++)
		{
			cin >> color[i];
		}
		
		int cnt,flag = 10000;
		int	word = 0;
		for(int i = 0;i < n;i++)
		{
			cnt = 0;
			for(int j = 0;j < n;j++)
			{
				if(color[i] == color[j])
				{
					cnt++;//元素相等則++ 
				}
			}
			if(cnt > word)
			{
				word = cnt;//最大的元素個數保存在word中 
				flag = i;//記錄最大元素個數的下標
			}
		}
		cout << color[flag] << endl; 
	}	
	return 0;
}


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved