POJ 3250:字母重排

AC CODE:

import java.util.Scanner;

public class Main {

    private static char[] ASCII = {
        ‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘g‘,‘h‘,‘i‘,‘j‘,‘k‘,‘l‘,‘m‘,‘n‘,‘o‘,‘p‘,‘q‘,‘r‘,‘s‘,‘t‘,‘u‘,‘v‘,‘w‘,‘x‘,‘y‘,‘z‘
    };
    private static String getString() {
        Scanner input = new Scanner(System.in);
        return input.nextLine();
    }

    private static boolean isLetter(char c) {
        if ((‘a‘ <= c) && (c <= ‘z‘)) {
            return true;
        }
        return false;
    }

    private static int[] getSortArray(String str, int[] letters) {
        for (int i = 0; i < str.length(); i++) {
            if (isLetter(str.charAt(i))) {
                letters[str.charAt(i) - ‘a‘]++;
            }
        }

        return letters;
    }

    public static void main(String[] args) {
        String str = getString();

        int[] letters = new int[26];
        letters = getSortArray(str, letters);

        for (int i = 0; i < letters.length; i++) {
            for (int j = 0; j < letters[i]; j++) {
                System.out.print(ASCII[i] + "");
            }
        }
        System.out.print("\n");
    }

}

POJ 3250:字母重排,布布扣,bubuko.com

时间: 2024-12-19 13:34:52

POJ 3250:字母重排的相关文章

POJ 3250 Bad Hair Day(单调栈)

题目地址:POJ 3250 初学单调栈.多校和网络赛已经碰到两次了. 单调栈的原理简单的不能再简单了..就是让栈里的元素从栈顶到栈底呈单调性. 比如说递增单调栈. 每次放进一个数的时候,如果栈顶的数小于要放的数,就把栈顶的数pop出来使得栈里保持单调性. 对于这道题来说,就从右往左开始遍历,建一个递增单调栈.那么每次pop出来的就是当前的牛可以看到的牛数.然后累加即可. 代码如下: #include <iostream> #include <cstdio> #include <

5.3.2 字母重排

输入一个字典(用******结尾),然后再输入若干单词.每输入一个单词w,你都需要在字典中找出所有可以用w的字母重排后得到的单词,并按照字典序从小到大的顺序在一行中输出(如果不存在,输出:().输入单词之间用空格或空行隔开,且所有输入单词都由不超过6个小写字母组成.注意,字典中的单词不一定按字典序排列.样例输入:tarp given score refund only trap work earn course pepper part ******resco nfudre aptr sett o

算法篇——字母重排

来源:<算法竞赛入门经典>例题5.3.2 题目:输入一个字典(用******结尾),然后再输入若干单词.每输入一个单词w,你都需要在字典中找出所有可以用w的字母重排后得到的单词,并按照字典序从小到大的顺序在一行中输出(  如果不存在,输出:(  ).输入单词之间用空格或空行隔开,且所有输入单词都由不超过6个小写字母组成.注意,字典中的单词不一定按字典序排列. 样例输入: tarp given score refund only trap work earn course pepper part

Algorithm --&gt; 字母重排

字母重排 输入一个字典(用***结尾),然后再输入若干单词.没输入一个单词w,都需要在字典中找出所有可以用w的字幕重排后得到的单词,并按照字典序从小到大的顺序在一行中输出,如果不存在,输出“:(”.单词间用空格隔开,且所有输入单词都由不超过6个小写字母组成. 样例输入: tarp given score refund only trap work earn course ***** aptr asdfg 样例输出: part tarp trap :( 程序: #include <iostream

字母重排

输入一个字典(用******结尾),然后再输入若干单词.每输入一个单词w,你都需要在字典中找出所有可以用w的字母重排后得到的单词,并按照字典序从小到大的顺序在一行中输出(如果不存在,输出:().输入单词之间用空格或空行隔开,且所有输入单词都由不超过6个小写字母组成.注意,字典中的单词不一定按字典序排列. 样例输入: tarp given score refund only trap work earn course pepper part ****** resco nfudre aptr set

字母重排(字符串处理)

题目信息如下: 题意分析: 快速方法就是将字母先重排几次,然后在与输入的重拍后的数据进行比较,快速简单. 代码如下:(此解法详解析参考<算法竞赛入门>) #include<stdio.h> #include<string.h> #include<stdlib.h> int n; char a[2020][10],s[2020][10]; int cmp(const void *a,const void *b) { return *(char *)a-*(ch

poj 3250 Bad Hair Day

题目链接:http://poj.org/problem?id=3250 思路分析: 题目要求求每头牛看见的牛的数量之和,即求每头牛被看见的次数和:  现在要求如何求出每头牛被看见的次数?  考虑到对于某头特定的牛来说,看见它的牛一定在它的左边,另外其高度应该大于该牛的高度,所以只需要计算在其左边并高度大于它的牛的数目即可:  考虑构建一个栈,在某头牛入栈时,弹出栈中高度小于它的牛,剩下的牛高度大于它,此时计算栈的长度就可以得到该牛被看见的次数. 代码如下: #include<iostream>

(单调队列) Bad Hair Day -- POJ -- 3250

http://poj.org/problem?id=3250 Bad Hair Day Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 15956   Accepted: 5391 Description Some of Farmer John's N cows (1 ≤ N ≤ 80,000) are having a bad hair day! Since each cow is self-conscious abou

poj 3250 Bad Hair Day(栈的运用)

http://poj.org/problem?id=3250 Bad Hair Day Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 15985   Accepted: 5404 Description Some of Farmer John's N cows (1 ≤ N ≤ 80,000) are having a bad hair day! Since each cow is self-conscious abou