国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

小白的poj試練之1002

2019-11-11 02:59:06
字體:
供稿:網(wǎng)友

1002:方便記憶的電話號碼

  此題需要將一組用可能用字母表達的電話號碼中重復(fù)的電話號碼統(tǒng)計出來并按順序打印出來。

  剛拿到此題我是蒙蔽的,于是百度了一下解法,認識到了map的妙用,大概相當(dāng)于python中的字典。

  當(dāng)然也有些慢慢看出來的體會,比如新建一個map中的鍵值對時如果不給value賦值那么應(yīng)該是默認為零,譬如:

  map<string,int>mp;

    string s;

    map[s]+=1;

    代碼沒有寫全,想要表達的是這個map[s]+=1應(yīng)該就是初始創(chuàng)建時為零,也就是說如果按上面代碼運行s對應(yīng)的值應(yīng)該為1。

    還有一個是map是自動按照鍵的大小來排序的,所以說使用map后就不需要再為排序問題糾結(jié)了,只需要記住鍵值是升序就可以了。

    顯然使用map非常方便于統(tǒng)計數(shù)據(jù)對。將最終提交代碼貼在下面:

    

#include<iostream>#include<map>#include<string>using namespace std;char convert(char cha){    switch(cha)	{	case 'A':	case 'B':	case 'C':		return '2';	case 'D':	case 'E':	case 'F':		return '3';	case 'G':	case 'H':	case 'I':		return '4';	case 'J':	case 'K':	case 'L':		return '5';	case 'M':	case 'N':	case 'O':		return '6';	case 'P':	case 'R':	case 'S':		return '7';	case 'T':	case 'U':	case 'V':		return '8';	case 'W':	case 'X':	case 'Y':		return '9';	default:		return cha;	}}int main(){	map<string, int>mp;	int count;	cin >> count;	string str;	bool find = false;	for (int i = 0; i < count; i++)	{		cin >> str;		string s = "";		for (int j = 0; j < int(str.length()); j++)		{			if ((str[j] >= '0'&&str[j] <= '9') || (str[j] >= 'A'&&str[j] <= 'Z'))				s += convert(str[j]);		}		mp[s] += 1;	}	map < string, int >::iterator it;	for (it = mp.begin(); it != mp.end(); it++)	{		if (it->second != 1)		{			find = true;			for (int i = 0; i < 7; i++)			{				cout << it->first[i];				if (i == 2)					cout << '-';			}			cout << ' ';			cout << it->second<<endl;		}	}	if (!find)		cout << "No duplicates."<<endl;	return 0;}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 丽水市| 凤山县| 克山县| 萨嘎县| 瑞金市| 湟中县| 建阳市| 尖扎县| 莱阳市| 神木县| 泗洪县| 万源市| 准格尔旗| 文安县| 大庆市| 平和县| 安达市| 商都县| 沧源| 南涧| 绥宁县| 迁安市| 博兴县| 棋牌| 耒阳市| 罗城| 红安县| 东莞市| 元阳县| 翼城县| 普宁市| 建阳市| 沭阳县| 吕梁市| 长武县| 肥城市| 沧源| 兰州市| 天长市| 安塞县| 康乐县|