• 寻找ABC的个数


    记录一下,上次校赛没有做出来。。。。。。。。。。。。。。。。

    题目(大概好像意思)是:给出一个字符串,找出按顺序组合成的ABC这类字符串的个数。

    比如:

    ABC,则ABC顺序组合只有1个,组合序列为123

    BAC,则ABC顺序组合只有0个

    ABBABAC,则ABC顺序组合只有4个,组合序列为127,137,157,457

    AABBCC,则顺序组合的有8个,组合序列为135,136,145,146,235,236,245,246

    ABCBC,则顺序组合的有3个,组合序列为123,125,145

    解题思路(早上起床的时候,突然想到,但在比赛的时候,其他队已经做出来了,额,自己记录一下就行):

    先把输入字符串进行扫描,分别用int A, int AB来记录被扫描的字符串中出现A的个数和能组合成AB的个数

    当扫面到一个'B'这个字符时,把A结果累加起来成为AB的值。

    当扫描到一个'C'这个字符时,把AB结果累加起来就是最后的结果。

    直到把字符扫描完。

    代码:

    #include <iostream>
    #include <string>
    
    #define ll long long
    
    using namespace std;
    
    int main() {
        
        ll A,AB; // 用来记录被扫描的字符串中出现A的个数和能组合成AB的个数
        ll  ans;
        string str;
        while(cin >> str) {
            A = 0;
            AB = 0;
            ans = 0;
            
            for (int i = 0; i < str.size(); i++) {
                if (str[i] == 'A') A++;
                else if (str[i] == 'B') {
                    AB += A;
                }else if (str[i] == 'C') {// 如果扫描到'C'字符了,则看一下前面能AB的组合数 
                    ans += AB; 
                }
            }
            cout << ans << endl;
        }
        
        
        return 0;
    } 
    View Code

    。。。。。如果有错,欢迎指错。。。。。。。。。。。。

  • 相关阅读:
    DPDK L2fwd 源码阅读
    集美大学网络1413第六次作业(团队二)
    集美大学网络1413第五次作业(团队一)
    集美大学网络1413第四次作业(结对二)
    集美大学网络1413第三次作业
    集美大学网络1413第二次作业
    集美大学网络1413第一次作业
    集美大学软工-网络1413大家庭
    耿丹16-1上半学期助教总结
    耿丹16-1第十二次作业
  • 原文地址:https://www.cnblogs.com/hello-dummy/p/13239019.html
Copyright © 2020-2023  润新知