题目链接:单词问题

找一个字符串里的所有单词,重复的只输出一次。关于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. map json 字符串 对象之间的相互转化

    1.对象与字符串之间的互转 将对象转换成为字符串 String str = JSON.toJSONString(infoDo); 字符串转换成为对象 InfoDo infoDo = JSON.pars ...

  6. HUD-2112 HDU Today(最短路map标记)

    题目链接:HUD-2112 HDU Today 思路: 1.最短路spfa模板. 2.map标记建图. 3.考虑距离为0或者-1的情况. 总结:下次map记得清空orz. AC代码: #include ...

  7. python用reduce和map把字符串转为数字的方法

    python用reduce和map把字符串转为数字的方法 最近在复习高阶函数的时候,有一道题想了半天解不出来.于是上午搜索资料,看了下别人的解法,发现学习编程,思维真的很重要.下面这篇文章就来给大家介 ...

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

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

  9. 499 单词计数 (Map Reduce版本)

    原题网址:https://www.lintcode.com/problem/word-count-map-reduce/description 描述 使用 map reduce 来计算单词频率http ...

随机推荐

  1. ZOJ-3725 Painting Storages 动态规划

    题意:给定一个数N,表示有N个位置,要么放置0,要么放置1,问至少存在一个连续的M个1的放置方式有多少? 分析:正面求解可能还要考虑到重复计算带来的影响,该题适应反面求解.设dp[i][j]表示到前 ...

  2. Redis配置文件之————redis.conf配置及说明

    基本设置 1. 备释当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写):1k =< 1000 bytes1kb =< 1024 by ...

  3. Could not initialize class sun.awt.X11GraphicsEnvironment

    报错:

  4. Android开发面试经——3.常见Java基础笔试题

      Android开发(29)  版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...

  5. proxool在web环境中的使用

    proxool在web环境中的使用 简介 Proxool连接池是sourceforge下的一个开源项目,这个项目提供一个健壮.易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接 ...

  6. nginx日志文件切割

    #!/bin/bash #脚本对日志文件进行切割 #脚本需要crontab 每天定时执行 #Nginx 日志文件的存放路径 logs_path="/../logs/" mkdir ...

  7. 【Python】输出中文字符串的两种方法

    print u"中文"   # -*- coding: utf-8 -*-   这句话放在最上面,记得是最上面,顶格写 这样,print后,字符串前就不用加u了

  8. 如何连接git bash和git hub

    git config --global user.name "Your Real Name" 2 git config --global user.email you@email. ...

  9. 第二章 Python基本元素:数字、字符串和变量

    Python有哪些内置的数据类型: True False #布尔型 42 100000000 #整型 3.14159 1.0e8 #浮点型 abcdes #字符串 2.1 变量.名字和对象 pytho ...

  10. 双心ping GUI工具1.0

    双心ping GUI工具1.0该软件利用WindowsAPI提供了图形界面的ping程序,同时还可以调用DOS下的ping命令.ping成功后自动加入网址列表框及同目录下的列表文件Pinglist.i ...