close

1.空字串也有可能是input之一

2.找到對應的字元後mark掉

3.照字母順序輸出

網址:

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1193

--------------------------------------------

#include <stdio.h>

#define MAX 1001
#define ASCII 128

int main()
{
    int i, j;
    char str1[MAX], str2[MAX];

    while(gets(str1) && gets(str2) )
    {
        int table[ASCII] = {0}; /* To store the number of occurrence of every letter. */

        for(i = 0; str1[i]; i++)
            for(j = 0; str2[j]; j++)
                if(str1[i] == str2[j])
                {
                    table[str2[j] ]++;
                    str2[j] = '0'; /* Avoid double counting.*/ /* mark */
                    break;
                }
        for(i = 'A'; i <= 'z'; i++) /* Alphabetically output. */
            for(; table[i]; table[i]--) /* Print according to value. */
                printf("%c", i);
        printf("\n");
    }
    return 0;
}
 

 

-2015-05-22-----------------------------------------

package test;

import java.util.*;

public class main {

    public static void main(String[] args) {
        try {
            final Scanner in = new Scanner(System.in);
            while (in.hasNextLine()) {
                ArrayList al = new ArrayList();
                char[] chArrA = in.nextLine().replaceAll(" ", "").toCharArray();
                char[] chArrB = in.nextLine().replaceAll(" ", "").toCharArray();
                int idx;

                for (int i = 0; i < chArrA.length; i++) {
                    //  有找到
                    if (((idx = indexOf(chArrB, chArrA[i])) != -1) && (chArrB[idx] != ' ')) {
                        char ch = chArrB[idx];
                        al.add(ch);

                        // 設成其它字元以免再次找到
                        chArrB[idx] = ' ';
                    }
                }
                al.sort(new Comparator() {
                    @Override
                    public int compare(Object o1, Object o2) {
                        return ((char) o1) - ((char) o2);
                    }
                });
                for (Object ob : al) {
                    System.out.print("" + ob.toString());
                }
                System.out.println("");
            }
            in.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static int indexOf(char[] chArr, int ch) {
        for (int i = 0; i < chArr.length; i++) {
            if (chArr[i] == ch) {
                return i;
            }
        }
        return -1;
    }
}
 

arrow
arrow
    全站熱搜

    awesq123 發表在 痞客邦 留言(0) 人氣()