codeforce_894A_字符串水_找出子串所有QAQ可以不连续
2017-12-03 14:01
417 查看
“QAQ” is a word to denote an expression of crying. Imagine “Q” as eyes with tears and “A” as a mouth.
Now Diamond has given Bort a string consisting of only uppercase English letters of length n. There is a great number of “QAQ” in the string (Diamond is so cute!).
illustration by 猫屋 https://twitter.com/nekoyaliu
Bort wants to know how many subsequences “QAQ” are in the string Diamond has given. Note that the letters “QAQ” don’t have to be consecutive, but the order of letters should be exact.
Input
The only line contains a string of length n (1 ≤ n ≤ 100). It’s guaranteed that the string only contains uppercase English letters.
Output
Print a single integer — the number of subsequences “QAQ” in the string.
Examples
input
QAQAQYSYIOIWIN
output
4
input
QAQQQZZYNOIWIN
output
3
Note
In the first example there are 4 subsequences “QAQ”: “QAQAQYSYIOIWIN”, “QAQAQYSYIOIWIN”, “QAQAQYSYIOIWIN”, “QAQAQYSYIOIWIN”.
找出子串所有QAQ可以不连续
Now Diamond has given Bort a string consisting of only uppercase English letters of length n. There is a great number of “QAQ” in the string (Diamond is so cute!).
illustration by 猫屋 https://twitter.com/nekoyaliu
Bort wants to know how many subsequences “QAQ” are in the string Diamond has given. Note that the letters “QAQ” don’t have to be consecutive, but the order of letters should be exact.
Input
The only line contains a string of length n (1 ≤ n ≤ 100). It’s guaranteed that the string only contains uppercase English letters.
Output
Print a single integer — the number of subsequences “QAQ” in the string.
Examples
input
QAQAQYSYIOIWIN
output
4
input
QAQQQZZYNOIWIN
output
3
Note
In the first example there are 4 subsequences “QAQ”: “QAQAQYSYIOIWIN”, “QAQAQYSYIOIWIN”, “QAQAQYSYIOIWIN”, “QAQAQYSYIOIWIN”.
找出子串所有QAQ可以不连续
#include<bits/stdc++.h> #define ll long long using namespace std; int main() { char s[1111]; while(cin>>s) { ll i,j,len=strlen(s),q[111],a[111],lq=0,la=0; for(i=0; i<len; i++) { if(s[i]=='Q') q[lq++]=i; else if(s[i]=='A') a[la++]=i; } ll ans=0; // cout<<lq<< " "<<la<<endl; for(i=0; i<la; i++) { ll tt=0; for(j=0; j<lq; j++) if(q[j]<a[i]) tt++; else break; ans+=tt*(lq-tt); } cout<<ans<<endl; } return 0; }
相关文章推荐
- 一个一万字长的连续字符串,找出其所有子串,并统计子串的出现次数
- 字符串笔试题1:找出子串在字符串中出现的次数,子串中的字符可以不连续,但顺序固定
- 找出所有最长连续重复子串及其个数
- 找出字符串的最长子串,要求子串的所有字符相同,如:"abcdeeefgh"结果是"eee"
- Find All Anagrams in a String给定字符串s和非空字符串p,找出p中是s中点的所有子串
- 找出所有最长连续重复子串及其个数
- 【面试题】找出字符串中连续出现次数最多的子串
- POJ 2774 找出2字符串 最长公共连续子串
- 从一个字符串当中找到最大子串(字典序,可以不连续)
- 找出字符串中连续出现次数最多的子串
- 找出一个字符串中最长连续相同子串
- 找出字符串中的最长连续数字子串
- 【面试题】找出字符串中连续出现次数最多的子串
- Python获取一个字符串所有连续子串
- 给定一个set字符和一个正数k,找出所有该做set它可以由长度构成k该字符串集合 print-all-combinations-of-given-length
- 编程找出字符串的最长子串,要求子串的所有字符相同
- 找出字符串中连续出现次数最多的子串
- 找出一个字符串中最长连续相同子串
- 阿里巴巴2014.08.29校园招聘笔试题---找出两个字符串中连续相同的最大子串
- 找出字符串的所有子串-Python