字符串专题:map POJ 1002

第一次用到是在‘校内赛总结’扫地那道题里面,大同小异

map<string,int>str 可以专用做做字符串的匹配之类的处理

string donser;

str [donser]++ 自动存donser到map并且值加一,如果发现重复元素不新建直接加一,

map第一个参数是key,默认字典序升序排列key

map<string,int>::iterator ii;         map的迭代器
for(ii=outputer.begin();ii!=outputer.end();++ii)  迭代器遍历
{
  if(ii->second>1)                     map第一个参数 ii->first或者 (*ii).first ;第二个参数 ii->second或者 (*ii).second
  {
    donser=ii->first;
    cout<<donser<<" "<<ii->second<<endl;
  }
}

POJ 1002 http://poj.org/problem?id=1002

对电话号码做化数字处理,然后匹配

#include<iostream>
#include<cstdio>
#include<string>
#include<map>
using namespace std;
string astr;
void deal()
{
    int len=astr.size();
    for(int i=0;i<len;i++)
    {
        if(astr[i]==‘-‘)
        {
            astr.erase(i,1);
            i--;
            continue;
        }
        if(astr[i]==‘A‘||astr[i]==‘B‘||astr[i]==‘C‘)
        {
            astr.replace(i,1,"2");
        }
        if(astr[i]==‘D‘||astr[i]==‘E‘||astr[i]==‘F‘)
        {
            astr.replace(i,1,"3");
        }
        if(astr[i]==‘G‘||astr[i]==‘H‘||astr[i]==‘I‘)
        {
            astr.replace(i,1,"4");
        }
        if(astr[i]==‘J‘||astr[i]==‘K‘||astr[i]==‘L‘)
        {
            astr.replace(i,1,"5");
        }
        if(astr[i]==‘M‘||astr[i]==‘N‘||astr[i]==‘O‘)
        {
            astr.replace(i,1,"6");
        }
        if(astr[i]==‘P‘||astr[i]==‘R‘||astr[i]==‘S‘)
        {
            astr.replace(i,1,"7");
        }
        if(astr[i]==‘T‘||astr[i]==‘U‘||astr[i]==‘V‘)
        {
            astr.replace(i,1,"8");
        }
        if(astr[i]==‘W‘||astr[i]==‘X‘||astr[i]==‘Y‘)
        {
            astr.replace(i,1,"9");
        }
    }
    return;
}
int main()
{
    int T,lable=0;
    map<string,int>outputer;
    scanf("%d",&T);
    int i=0,j=T;
    while(j--)
    {
        cin>>astr;
        deal();
        outputer[astr]++;
    }
    map<string,int>::iterator ii;
    for(ii=outputer.begin();ii!=outputer.end();++ii)
    {
        if(ii->second>1)
        {
            astr=ii->first;
            astr.insert(3,"-");
            cout<<astr<<" "<<ii->second<<endl;
            lable=1;
        }
    }
    if(!lable) cout<<"No duplicates.";
    return 0;
}
时间: 2024-10-27 13:28:28

字符串专题:map POJ 1002的相关文章

POJ 1002 487-3279 Trie题解

本题的解法是多种多样的,这里使用Trie来解决一下. 也可以使用hash表,map等解法,因为输入是特定的7位数字,故此应该都可以解决的. 这里使用Trie的速度并不快,主要是因为最后我直接遍历输出,遍历整个Trie的速度还是比较慢的. 思路: 1 使用insert函数建立Trie,主要增加一个叶子节点的信息,记录当前有多少个重复的字符串 2 遍历就是根据叶子节点的信息决定是否需要输出. #include <stdio.h> #include <iostream> #include

UVa10115_Automatic Editing csdn(小白书字符串专题)

解题报告 题意: 替换字符串,一个单词可重复替换 思路: 这种题都很恶心. #include <iostream> #include <cstring> #include <cstdio> #include <map> using namespace std; char str[1000][1000],ch[1000][1000],sh[1000],str1[1000]; int main() { int n,i,j; while(~scanf("

poj 1002:487-3279(水题,提高题 / hash)

487-3279 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 236746   Accepted: 41288 Description Businesses like to have memorable telephone numbers. One way to make a telephone number memorable is to have it spell a memorable word or phras

[2016-01-19][POJ][1002]

[2016-01-19][ACM][POJ 1002] 题目大意:给定一串号码,转化号码,然后输出重复的号码.   方法:读取->转换->计数->输出   解题过程遇到问题:   cin,cout貌似会WA(原因不详) 数组开太小,wa成dog,开到50能过. 忘记输出,No duplicates.的情况 不知道 map 自带排序,手动实现了一遍,2333 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

(精)字符串,map -&gt; json对象-&gt;map(初学者必读)

1 import java.util.LinkedList; 2 import java.util.*; 3 import java.util.ListIterator; 4 5 import net.sf.json.JSONArray; 6 import net.sf.json.JSONObject; 7 10 public class a11111111 { 11 public static void main(String[] args) { 12 13 JSONObject obj=ne

UVa10815_Andy&#39;s First Dictionary(小白书字符串专题)

解题报告 思路: 字典树应用,dfs回溯遍历字典树 #include <cstdio> #include <cstring> #include <iostream> using namespace std; struct node { int v; node *next[26]; }; int l,m,cnt; char str[100],ch[100],dic[5500][100]; node *newnode() { int i,j; node *p=new nod

算法之字符串专题

一.单串匹配问题 poj2406(求字符串的周期)利用next[ ]性质,ans=next[len]%(len-next[len])==0?next[len]/(len-next[len]):1; poj2752(求所有相同的前后缀)利用next[ ]性质,pos=next[pos](不断向前找) next[0]=-1: next[i]=max(相同前后缀) poj3461(kmp模板题) 二.多串匹配问题 poj3080.poj3450(求多串最长公共字串且字典序最小)二分,枚举首串(按字典序

JSON,字符串,MAP转换

package com.tree.autotest.testcase.IAuditBillDetailService; import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.datatrees.basisdata.bankbill.service.IAuditBillDetailService;import com.fasterxml.jackson.databind.ObjectMap

json字符串转map

<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.6.1</version> </dependency> /** * json字符串转map * @author Owner * */public class ParseJsonToMap { public static Lis