1. 程式人生 > 其它 >飛來飛去

飛來飛去

【問題描述】
鬆雅作為一位商業人士,經常需要在天津和深圳之間飛來飛去,因為在這兩個城市,她有多間旅館。當然在冬天她更願意從天津飛到深圳,因為深圳更暖和。她實在是太忙了,以至於她根本就不記得在這兩個方向上坐過多少航班了。
在最近的n天,她知道自己哪天在天津的辦公室哪天在深圳的辦公室,她總是在晚上飛,因此不可能在同一天出現在兩地的辦公室。考慮到這些資訊,確定在過去的n天裡,她從深圳飛天津的次數是否更多。

【輸入形式】
輸入的第一行為一個整數T,表示測試用例的個數。
接下來的T行,每行為一個測試用例,表示為一個整數n和一個n個字元的字串,整數表示最近過去的天數,字串表示鬆雅停留在兩地辦公室的情況,由大寫字母’S’和’T’組成,如果第i個字元為’S’,表示這天她在深圳的辦公室,否則在天津的辦公室。最遠的一天為第一個字元,最近的一天為最後一個字元。

【輸出形式】
輸出有n行,每行對應一個測試用例,如果從深圳飛天津的次數更多,輸出“YES”,否則輸出“NO”。

【樣例輸入】

4
4 TSST
2 ST
10 TTTTTTTTTT
10 SSTTSTTSTT
【樣例輸出】

NO
YES
NO
YES

【思路】
第一步就是按格式輸入,這個簡單,然後算從深圳飛往天津和從天津飛往深圳的次數,最後比較。

#include <iostream>
using namespace std;
int main()
{
    int T;
    cin >> T;
    int b[T];
    for (int i = 0; i <
T; i++) { cin >> b[i]; char a[b[i]]; for (int j = 0; j < b[i]; j++) { cin >> a[j]; } int s = 0, t = 0; for (int j = 0; j < b[i] - 1; j++) { if (a[j] == 'S' && a[j + 1] == 'T') s++
; if (a[j] == 'T' && a[j + 1] == 'S') t++; } if (s>t) cout << "YES" << endl; else cout << "NO" << endl; } return 0; }