Hdu 2072 單詞數【字串】
單詞數
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 36237 Accepted Submission(s): 8764Problem Description
lily的好朋友xiaoou333最近很空,他想了一件沒有什麼意義的事情,就是統計一篇文章裡不同單詞的總數。下面你的任務是幫助xiaoou333解決這個問題。Input
有多組資料,每組一行,每組就是一篇小文章。每篇小文章都是由小寫字母和空格組成,沒有標點符號,遇到#時表示輸入結束。Output
Sample Input
you are my friend #
Sample Output
4
方法比較笨:
用迴圈判斷,把每個單詞都從字串裡分離出來,存到一個字元數組裡面,然後排序,然後統計求得不同的單詞數。
這樣做比較坑的一個地方是,如果全部是空格,單詞數是0,不是1,所以需要特殊判斷一下,這個題這樣做,的確有點複雜...
#include<stdio.h> #include<string.h> void swep(char a[],char b[]) { char c[1005]; strcpy(c,a);strcpy(a,b);strcpy(b,c); } int main() { char x[1005],y[1005][1005];int i,j,c,len,n; while(gets(x)) { len=strlen(x); if(strcmp(x,"#")==0) { break; } j=n=c=0; memset(y,0,sizeof(y)); for(i=0;i<len;i=i+j+1) { j=0; if(i+j<len&&x[i+j]!=' ') { for(j=0;x[i+j]!=' '&&i+j<len;++j) { y[n][j]=x[i+j]; } ++n; } } for(i=0;i<n;++i) { for(j=0;j<n;++j) { if(strcmp(y[i],y[j])>0) { swep(y[i],y[j]); } } } for(i=1;i<n;++i) { if(strcmp(y[i-1],y[i])!=0) { ++c; } } if(n==0) { c=0; } else { ++c; } printf("%d\n",c); } return 0; }
有一種直接呼叫庫函式的方法,把所有的單詞裂解出來,然後實現統計.......
#include<stdio.h> #include<string.h> int main() { int i,j,t,sum,k,b[100]; char *v[1005],s[1005];//開了一個指標陣列,相當於一個二維陣列 while(gets(s)) { memset(b,1,sizeof(b)); if(s[0]=='#') { break; } i=0;v[i]=strtok(s," ");//這個函式返回的是指標,所以開的是指標陣列 while(v[i]) { i++; v[i]=strtok(NULL," "); } for(j=0;j<i-1;j++)//迴圈除去相同的 { for(t=j+1;t<i;t++) { if(strcmp(v[j],v[t])==0) { b[t]=0; } } } for(sum=0,k=0;k<i;k++)//統計個數.... { if(b[k]) { sum++; } } printf("%d\n",sum); } return 0; }
好幾個月了,再次做這道題,結果還是被坑了好幾次,最後還是用保險的方法去統計的.....
本來以為自己還會點東西,結果發現,原來真的只會一點.....
把大神給的測試資料貢獻一下.....
asdf as a
asdf asdf
#
(相信你的眼睛,那有一行空格.....)/*
2015年1月15日13:39
*/
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct node
{
char s[1005];
bool friend operator < (node a,node b)
{
return strcmp(a.s,b.s)>0;
}
}x[1005];
int main()
{
char s[1005];
//freopen("shuju.txt","r",stdin);
while(gets(s),s[0]!='#')
{
memset(x,0,sizeof(x));
int cnt=0,tp=0,len=strlen(s);
for(int i=0;i<len;++i)
{
if(s[i]==' ')
{
continue;
}
while(i<len&&s[i]!=' ')
{
x[cnt].s[tp++]=s[i++];
}
++cnt;tp=0;
}
sort(x,x+cnt);
int ans=0;
for(int i=0;i<cnt;++i)
{
if(!i||strcmp(x[i-1].s,x[i].s)!=0)
{
++ans;
}
}
printf("%d\n",ans);
}
return 0;
}
相關推薦
Hdu 2072 單詞數【字串】
單詞數 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 36237 Accepted Submiss
【HDU - 2072 】單詞數(字串讀入技巧,sstream大法,水題,字串讀入格式)
題幹: lily的好朋友xiaoou333最近很空,他想了一件沒有什麼意義的事情,就是統計一篇文章裡不同單詞的總數。下面你的任務是幫助xiaoou333解決這個問題。 Input 有多組資料,每組一行,每組就是一篇小文章。每篇小文章都是由小寫字母和空格組成,沒有標點符號,遇到#時表示
leetcode 557. 反轉字串中的單詞 III【Easy】
題目: 給定一個字串,你需要反轉字串中每個單詞的字元順序,同時仍保留空格和單詞的初始順序。 示例 1: 輸入: “Let’s take LeetCode contest” 輸出: “s’teL ekat edoCteeL tsetnoc” 注意:在字串中,每個單詞由單個空格分隔,並且
(第二題)統計單詞數 【洛谷】P1308
題目描述 一般的文字編輯器都有查詢單詞的功能,該功能可以快速定位特定單詞在文章中的位置,有的還能統計出特定單詞在文章中出現的次數。 現在,請你程式設計實現這一功能,具體要求是:給定一個單詞,請你輸出它在給定的文章中出現的次數和第一次出現的位置。注意:匹配單詞時,
HDU 2040--親和數【水題】
親和數 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi
java-mybaits-00203-DAO-mapper代理開發方法,多參數【推薦】
tca alt 三種 ram 程序員 spl cep () void 程序員只需要mapper接口(相當 於dao接口) 不需要寫具體實現類,mapper已經代理完成,mybatis才有的 一、mapper代理開發方法(建議使用) 程序員在編寫map
什麽是矩陣的範數【轉載】
log 一次函數 絕對值 半徑 領域 理解 思維 tro 函數 在介紹主題之前,先來談一個非常重要的數學思維方法:幾何方法。在大學之前,我們學習過一次函數、二次函數、三角函數、指數函數、對數函數等,方程則是求函數的零點;到了大學,我們學微積分、復變函數、實變函數、泛函等。我
Halcon函數【轉】
多個 ger name 像素 兩個 lin spl poi bsp comment ( : : Comment : ) 註釋語句 exit ( : : : ) 退出函數 open_file ( : : FileName, FileType : FileHandle
HDU 1711 Number Sequence【kmp】
show turn case put next() void 出現 回首 img Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...... , b[M] (1
php編譯參數註解--不明白許多參數的作用 慎用 –with-curlwrappers參數【轉載】
大小 debug ttext s參數 without freetype sql安裝 exif ati 在Linux下安裝PHP,源代碼方式安裝,總需要配置很多參數。這裏列出常用配置參數,並詳細用中文解釋說明了。給大家一些參考 編譯PHP的時候慎用 –with-curlwra
命令行參數解析函數getopt和getopt_long函數【轉】
問題 數組 輸出流 include req pts 容易 -- 得到 原文地址:http://blog.csdn.net/cashey1991/article/details/7942809 getopt和getopt_long函數 平時在寫程序時常常需要對命令行參
rsync的命令參數【轉】
word let orm 不同 文件名 pda rom add etc 本篇文章,我們只介紹rsync的命令參數。 rsync參數的具體解釋如下: -v, –verbose 詳細模式輸出 -q, –quiet 精簡輸出模式 -c, –checksum 打開校驗開關,強制對文
【基礎】循環數 【模擬】
int under 每一個 宋體 can port toc log flag 1096: 【基礎】循環數【模擬】 時間限制: 1 Sec 內存限制: 128 MB提交: 426 解決: 283[提交][狀態][討論版] 題目描述 描述 n 位的一個整數是循環數(cyc
計算細胞數【BFS】
bsp lin esp 給定 sin int splay play 表示 問題描述 一矩形陣列由數字0到9組成,數字1到9代表細胞,細胞的定義為沿細胞數字上下左右還是細胞數字則為同一細胞,求給定矩形陣列的細胞個數。 輸入格式 2行:第1行為兩個整數 mm, nn, 代表矩陣
2208. [JSOI2010]連通數【Tarjan】
src jsoi2010 else tps iostream jpg data ring 計算 Description Input 輸入數據第一行是圖頂點的數量,一個正整數N。 接下來N行,每行N個字符。第i行第j列的1表示頂點i到j有邊,0則表示無邊。
HDU 1495 非常可樂【BFS】
esp style 模擬操作 pop ace nbsp urn 而且 ane 題目鏈接:https://vjudge.net/problem/HDU-1495 轉載於:https://www.cnblogs.com/ECJTUACM-873284962/p/6750320.
HDU 2102 A計劃 【BFS】
node 二層 output bool pan set spa 右移 als <題目鏈接> 題目大意: 可憐的公主在一次次被魔王擄走一次次被騎士們救回來之後,而今,不幸的她再一次面臨生命的考驗。魔王已經發出消息說將在T時刻吃掉公主,因為他聽信謠言說吃公主的肉也能
仿String()構造器函數 【總結】
join() 簡單判斷 技術 數字 字符串分割 相加 ova 應該 結果 需求 實現以下方法: 控制臺結果: 需求分析: 首先確定new調用的this和什麽對象綁定,如果跟默認返回的對象綁定肯定做不到 [ ] 這樣的訪問,所以要在構造器內部返回一個包裝過
MySQL log_slave_updates 參數【轉】
style fec replicat border 博客園 col date 詳細 從服務器 說明:最近部署了mysql的集群環境,詳細如下M01和M02為主主復制,M01和R01為主從復制;在測試的過程中發現了以下問題: 1、M01和M02的主主復制是沒有問題的(從M
CH1807 Necklace【Hash】【字串】【最小表示法】
1807 Necklace 0x18「基本資料結構」練習 背景 有一天,袁☆同學綿了一條價值連城寶石項鍊,但是,一個嚴重的問題是,他竟然忘記了項鍊的主人是誰!在得知此事後,很多人向☆同學發來了很多郵件,都說項鍊是自己的,要求他歸還(顯然其中最多隻有一個人說了真話)。 ☆同學要求每個人都寫了一段關