XTU OJ 湘潭大学

题目描述

湘潭大学简称“XTU”,作为即将成为湘大的一份子,怎么不能为湘大添砖加瓦了?现在给你一个字符串,请你计算一下,从中选取字符,最多能组成多少个“XTU”?

输入

第一行是一个整数K,表示样例的个数。 以后每行一个字符串,字符串只包含英文大写字母,长度不会超过1000。

输出

每行输出一个样例的结果。

样例输入

3
XTUUTX
ABCDEFGHIJKLMNOPQRSTUVWXTZ
XXXTTT

样例输出

2
1
0

思路分析:思路较为简单,就是统计XTU三个字母的个数,选择这三个字母中出现次数最少的那个作为XTU字符串出现的字数

#include 
#include
#include 
using namespace::std;
int main()
{
    int K;

    scanf("%d", &K);
    for (int i = 0; i < K; i++) {
        int j;
        int count1 = 0, count2 = 0, count3 = 0;
        int temp;
        long long length_1 = 0;//用来储存输入的字符个数
        int a[3];
        char str1[1005];
        scanf("%s", str1);//只有输入%s时才要输入字符串长度
        //因为str1是一个数组,数组本身是一个指针,本身就是地址,再用位运算符就不对了
        length_1 = strlen(str1);
        for (int i = 0; i < length_1; i++) {
            if (str1[i] == 'X') { count1++; }
            if (str1[i] == 'T') { count2++; }
            if (str1[i] == 'U') { count3++; }
        }//用于记录输入字符中有多个xtu
         //接下来用来比较count1,count2,count3中的大小,选取最小的作为组成xtu的个数
         //排序算法:
        a[0] = count1;
        a[1] = count2;
        a[2] = count3;
        for (int i = 0; i < 3; i++) {
            j = i;
            for (int k = i + 1; k < 3; k++)
                if (a[k] < a[j]) {
                    j = k;
                }
            temp = a[i];
            a[i] = a[j];
            a[j] = temp;
        }//排序完成
        cout << a[0] << endl;



    }
}

你可能感兴趣的:(刷题,OJ,算法,蓝桥杯,c++)