2019.2.2 自主訓練日誌

      訓練第十三天,今天沒有AC一個題目Ծ‸Ծ,先說一下這個做了一天的題目,

Noder咖啡館裏面有N個座位,每天會有若干個顧客來店裏面消費,會得到相應的服務。一個顧客佔一個位置,顧客離開之後位置就會空出來。如果顧客來了之後沒有位置,那麼顧客就會直接離開,也就得不到服務。
現在已知座位數N,以及一天之內顧客來走的順序,請統計一下有多少顧客沒有得到服務。
輸入
單組測試數據。
第一行有一個整數N(1<=N<= 20 )。
第二行有若干個大寫字母,表示顧客的來和走。字母是成對出現的,字母的第一次出現表示顧客來到了咖啡館,字母的第二次出現表示該顧客離開了咖啡館。每一種字母最多出現一對。沒有座位的顧客總是在那些正在接受服務的顧客離開之前離開。
輸出
輸出一個整數,表示有多少顧客沒有接受服務。
輸入樣例
樣例輸入1
2
ABBAJJKZKZ
樣例輸入2
3
GACCBDDBAGEE
輸出樣例
樣例輸出1
0
樣例輸出2
1
思路清晰,1.逐一判斷字符數組中的元素是否出現過,如果沒出現過,總數n減1,如果出現過,總數n加1。2.判斷剩餘座位數是否大於0,即至少爲1,如果小於等於0,計數器加1,並且跳過下次循環。3.輸出計數器結果。
代碼實現:
#include
#include
#include
using namespace std;
int main()
{
int n,m,flag = 1,counts = 0;
cin>>n;
m = n-1;
char st[10001];
gets(st);
for(int i = 1;i<strlen(st);i++)
{
for(int j = 0;j<i;j++)
{
if(st[j]==st[i])
{
flag = 0;
break;
}
else
flag = 1;
}
if(flag)
m = m-1;
else
m = m+1;
if(m<0)
{
counts++;
continue;
}
}
cout<<counts<<endl;
return 0;
}
但是問題出現在gets語句,要調用字符串中的單個字符可以使用之前學到的方法,可是在這傳代碼裏,輸入的n成了字符串的一部分,或者說輸入n之後不能使用回車鍵,要不然直接輸出結果。所以現在無法驗證算法本身的錯誤,這個是最大的阻礙。
編程珠璣沒抽出時間來看,今天有點其他事耽誤了,手機出了問題,看書也沒法實現(눈_눈)
心塞。
今天收穫不多,期望明天解決問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章