链接:https://ac.nowcoder.com/acm/contest/1080/A

题目描述 > tokitsukaze有一个长度为n,只包含小写字母的字符串S。 对于每一种字母,若同种字母都连在一起,tokitsukaze会感到心情愉悦。 若tokitsukaze会感到心情愉悦,请输出”YES”,否则输出”NO”。(均不含引号。)

输入描述: > 第一行输入一个正整数n,(1≤n≤100)。 接下来一行输入一个长度为n的字符串S,’a’≤S[i]≤’z’。

输出描述:

输出一行,”YES”,或者”NO”。

示例1 输入

1

a

输出

YES

示例2

输入

2

ab

输出

YES

示例3

输入

3

aba

输出

NO 先定义一个字母表,输入一个字母将字母表对应的字母标记为已出现,再次出现时如果和它前一个字母不相等则输出NO;

完整代码:

#include<iostream>
#include<string>
#include<cstring>
#include<vector>
using namespace std;
int main(){
    int n;
    string alp = "abcdefghijklmnopqrstuvwxyz";
    while(cin>>n){   
    string tar;
    cin>>tar;
    int i,j;
    int flag=1;
    vector<int> b(n,0);
    for(i=0;i<n;i++){
        for(j=0;j<26;j++){
            if(tar[i] == alp[j])
                break;
                }
             
        if(b[j]==1){
            if(tar[i-1]!=tar[i]){              
                cout<<"NO"<<endl;
                flag=0;
                break;
        }      
        }
        if(b[j]==0){
            b[j]=1;
        }
}
 
if(flag){
 
    cout<<"YES"<<endl;}
}
}