NOJ---1408----map的运用
??????? 好吧? 最近應(yīng)該剁手了? 停不下擼的節(jié)奏
????????????? 我們還是先來看下這題吧
touch me
題目大意:
就是給你一串字符串 你要找出其中符合的2個字符構(gòu)成的字符串str 條件呢是? str[0]是輔音字母? str[1]是元音字母 -- aeiou--而且都是小寫的
其實 這應(yīng)該算種方法? 當(dāng)你需要統(tǒng)計字符串個數(shù)時候 map真的是個好東西? 而且stl里的容器 使用起來不負(fù)責(zé)? 理解它的內(nèi)存? 很難
?有本叫做 《STL源碼剖析》的似乎 很經(jīng)典?? 以后在看吧
這題 我做的時候 tle了好多次? cin cout看來在oj測試?yán)?還是太慢了
當(dāng)我后來將 它改成scanf printf 后 還是 tle? 最后 發(fā)現(xiàn) string的構(gòu)造函數(shù) 執(zhí)行起來 也是效率不高的
string(ch,pos,num)---ch即一個字符串的指針 pos 你要引用的位置 num個數(shù)? 這就是我當(dāng)時做題的時候 將找到的2個字符的字符串 存儲到sring的方法 然后tle了
然后 這邊 介紹個更好的方法? string str = ""? 這就相當(dāng)于是個重置??? 你要是 以前里面有很多元素 如"abcd" 那么 這樣就相當(dāng)于清空了
今天 一做 感覺 有時候 string 的一些函數(shù) 還是不錯的 要是 效率可以再高點的話,,
at last??? let us see demo
1 #include <iostream> 2 #include <map> 3 #include <string> 4 #include <cstring> 5 using namespace std; 6 7 const int size = 66666; 8 char str[size]; 9 bool judge( char ch ) 10 { 11 return ( ch=='a' || ch=='e' || ch=='i' || ch=='o' || ch=='u' ); 12 } 13 map<string,int>mp; 14 int main() 15 { 16 int len; 17 int i; 18 while( ~scanf("%s",str) ) 19 { 20 mp.clear(); 21 len = strlen(str); 22 i = 0; 23 string ch; 24 while( i<len-1 ) 25 { 26 if( !judge( str[i] ) && judge( str[i+1] ) ) 27 { 28 ch = ""; 29 ch+=str[i]; 30 ch+=str[i+1]; 31 mp[ch]++; 32 i+=2; 33 } 34 else 35 { 36 i++; 37 } 38 } 39 map<string,int>::iterator it; 40 for( it = mp.begin() ; it!=mp.end() ; it++ ) 41 { 42 printf( "%s %d\n",(it->first).c_str(),it->second ); 43 } 44 } 45 return 0; 46 } View Code?
應(yīng)該 今晚還會去做一題? 質(zhì)量不高啊.....
?
?
?
?
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/radical/p/3760212.html
總結(jié)
以上是生活随笔為你收集整理的NOJ---1408----map的运用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL内核:InnoDB存储引擎 卷
- 下一篇: C++基础知识学习笔记