题目链接:单词问题

找一个字符串里的所有单词,重复的只输出一次。关于map函数key值是字符串的问题一直比较含糊...

挣扎了一番,大概是,map的key值是char型数组的时候,标记的是地址,于是有map[char *, int]mp;然而..这就并没有什么卵用了吧..

然后...如果是string的话...怎么能让map认识这个字符串呢..string.resize(num);的作用应该就是在字符串末尾加上了结束符...然后...每次增加一个字符的时候..如果已经遇上了结束符...是不可以的...程序就崩溃了....这个时候应该结束符位置之后的地址都属于超出数组范围了...于是字符数组越界..这就跟地址分配有关了...

该题直接暴力先把所有的字符串存起来...每次输出的时候依次查找是不是前面是不是有过也是可以得...(就是有点蠢...)

神奇的resize函数...是时候学一发C++语法了..

附代码:

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <map>
using namespace std;

string str;
string temp;
map<string, int>mp;

int main() {
    while(cin >> str) {
        int len = str.length();
        temp = "";
        temp.resize(200);
        int cnt = 0;
        mp.clear();

        for (int i=0; i<len; ++i) {
            //if ((str[i] >= 'a' && str[i] <= 'z') || (str[i] >= 'A' && str[i] <= 'Z')) {
            if (isalpha(str[i])) { // 和上一行等价...就是体验一下有钱人的生活...
                temp[cnt++] = str[i];
            }
            else if (cnt != 0) {
                temp.resize(cnt); // 没有该行 map无法正确标记该字符串
                if (mp[temp] == 0) {
                    cout << temp << endl;
                    mp[temp]++;
                }

                cnt = 0;
                //temp = "";
               temp.resize(200); // 没有该行会崩溃
            }
            if (i == len-1 && cnt != 0) {
               temp.resize(cnt);
               if (mp[temp] == 0) {
                    cout << temp << endl;
               }
            }
        }
    }
    return 0;
}

  

FZU 2027 单词问题 map标记字符串典型问题的更多相关文章

  1. 统计单词频率--map

    问题描述: 输入一个单词列表,每行一个单词,统计单词出现的频率 思路: 主要是使用c++中的map容器.map实质上是一个二叉查找树,可以做到插入.删除.查询,平均查询时间在O(logn).n为map ...

  2. POJ 3320 尺取法,Hash,map标记

    1.POJ 3320 2.链接:http://poj.org/problem?id=3320 3.总结:尺取法,Hash,map标记 看书复习,p页书,一页有一个知识点,连续看求最少多少页看完所有知识 ...

  3. [51NOD1095] Anigram单词(map)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1095 字典的单词在map中排序和不排序各存1次,查的时候相减. ...

  4. Northwestern European Regional Contest 2016 NWERC ,F题Free Weights(优先队列+Map标记+模拟)

    传送门: Vjudge:https://vjudge.net/problem/Gym-101170F CF: http://codeforces.com/gym/101170 The city of ...

  5. HDU2072 tri树/map/set/字符串hash

    lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题 水题 就是用来试试字符串算法的 tri树 ...

  6. 高阶函数复习:利用reduce和map把字符串转为数字

    复习高阶函数的时候,有一道题想了半天解不出来.看了下别人的解法,发现学习编程,思维真的很重要. 习题: 利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数1 ...

  7. 剑指Offer 44. 翻转单词顺序列 (字符串)

    题目描述 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,"st ...

  8. codeforces 350 div2 C. Cinema map标记

    C. Cinema time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ...

  9. FZU 2122 又见LKity【字符串/正难则反/KMP/把一个字符串中某个部分替换为另一个部分】

    嗨!大家好,在TempleRun中大家都认识我了吧.我是又笨又穷的猫猫LKity.很高兴这次又与各位FZU的ACMer见面了.最近见到FZU的各位ACMer都在刻苦地集训,整天在日光浴中闲得发慌的我压 ...

随机推荐

  1. Android复习资料

    转载:http://blog.csdn.net/huachao1001/article/details/53156582 在10月份开始就没有再参与校招了,面试过程真的很累,有时现场等面试一等就是几个 ...

  2. sql按时间段汇总

    select dateadd(mi,(datediff(mi,convert(varchar(10),dateadd(ss,-1,CreateOn),120),dateadd(ss,-1,Create ...

  3. (String) | String.valueOf()

    Map m = new HashMap(); Integer i = 5; String s = null; m.put("val1", i); m.put("val2& ...

  4. JAVA设计模式之【简单工厂模式】

    1.创建抽象类User public abstract class User // 抽象类 { public void sameOperation() { System.out.println(&qu ...

  5. Messenger实现Android IPC

    当Service不需要支持并发操作时Messenger会非常有用.Messenger类使用Handler执行每个传入的消息,所有客户端的调用都按顺序运行在同一个线程上,这和AIDL是有区别的,AIDL ...

  6. 树莓派(Rospberry Pi B+)到货亲測

    1 图鉴 Rospberry Pi  B+最终在今天下午有蜗牛快递公司圆*送到了.B+主要是添加了2个USB,添加了GPIO,sd卡换成了micro sd ...先不说直接上图再说,期待了好久好久 w ...

  7. java 子类重写父类的方法应注意的问题

    若想实现一个合格重写方法,而不是重载,那么必须同时满足下面的要求! A.重写规则之一:    重写方法不能比被重写方法限制有更严格的访问级别.(但是可以更广泛,比如父类方法是包访问权限,子类的重写方法 ...

  8. asp.net之动态页面和静态页面的区别

    asp.net之动态页面和静态页面的区别 当我开始接触web开发的时候,首先学到的是html.css.js这一类网页语言,通过布局可以搭建出一个静态网站,效果也跟我们上网时经常看到的一些网站一样了.于 ...

  9. jquery.cycle.js简单用法实例

    样式: a{text-decoration: none;} *{;;} /*容器设置*/ .player { width:216px; height:248px; background:url(htt ...

  10. PL/SQL数据类型

    在定义变量或常量时,必须要指定一个数据类型,PL/SQL是一种静态类型化的程序设计语言,静态类型化又称为强类型化,也就是说类型会在编译时而不是在运行时被检查,这样在编译时便能发现类型错误,以便增强程序 ...