zoukankan      html  css  js  c++  java
  • PAT 1043 输出PATest(20)(代码+思路)

    1043 输出PATest(20)(20 分)

    给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按“PATestPATest....”这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按PATest的顺序打印,直到所有字符都被输出。

    输入格式:

    输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。

    输出格式:

    在一行中按题目要求输出排序后的字符串。题目保证输出非空。

    输入样例:

    redlesPayBestPATTopTeePHPereatitAPPT
    

    输出样例:

    PATestPATestPTetPTePePee

    PS:

          可以用字符计数器记录PATest,最后按序输出,一开始我是利用2个字符串(输入和{“PATest”})输入搜索一个字符,有则输出(同时删除),没有则删除第二个字符串中的字符,结果发现搜索的时间复杂度太大,还是回头用map,map这里也可以直接用一个128空间数组代替,即用字符的ASCII作下标。

    #include<iostream>
    #include<string>
    #include<algorithm>
    #include<map>
    using namespace std;
    int main()
    {
        map<char,int> m;
    	char ch, s[6] = { 'P','A','T','e','s','t' };
    	while (cin >> ch)m[ch]++;
    	while (m['P'] || m['A'] || m['T'] || m['e'] || m['s'] || m['t']) {
    		for (int i = 0; i < 6; i++)
    			if (m[s[i]]) {
    				cout << s[i];
    				m[s[i]]--;
    			}
    	}
    	return 0;
    }
  • 相关阅读:
    第八章 多线程编程
    Linked List Cycle II
    Swap Nodes in Pairs
    Container With Most Water
    Best Time to Buy and Sell Stock III
    Best Time to Buy and Sell Stock II
    Linked List Cycle
    4Sum
    3Sum
    Integer to Roman
  • 原文地址:https://www.cnblogs.com/F-itachi/p/9974443.html
Copyright © 2011-2022 走看看