思维总结
判断这串字符循环了几次,可以根据相邻字符是否逆序快速判断循环次数是否加一
如果后一个字母的位置小于等于前一个字母,则需要将循环次数加一
题目描述
代码描述
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 30;
int p[N];
int main()
{
string str;
cin >> str;
for (int i = 0; i < str.size(); i ++) p[str[i] - 'a'] = i; //存放字母在字符串中的位置
cin >> str;
int res = 1; //至少存在一次
for (int i = 1; i < str.size(); i ++)
{
if (p[str[i] - 'a'] <= p[str[i - 1] - 'a']) res ++; //逆序所以循环加一
}
cout << res;
return 0;
}