字符集合
描述:
每组数据输入一个字符串,字符串最大长度为100,且只包含字母,不可能为空串,区分大小写。
每组数据一行,按字符串原有的字符顺序,输出字符集合,记重复出现并靠后的字母不输出。
例如:
输入:ABABc
输出:ABc
思路:
每组输入,所以要进行while循环输入,写一个fun方法进行描写,首先实例化一个对象,然后用while循环遍历字符,如果原来的集合里面有,就不进入,。没有,则遍历的字符进入对象里。
import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner scan=new Scanner(System.in);while (scan.hasNextLine()){String s=scan.nextLine();String ret=fun(s);System.out.println(ret);}}public static String fun(String str) {String string="";for (int i = 0; i < str.length(); i++) {char ch=str.charAt(i);if(!string.contains(ch+"")){string+=ch;}}return (string);}
}
结果:
合并两个数组:
给出一个有序的整数数组A和有序的整数数组B,请将B合并到A中,变成一个有序的升序数组。
思路:分别从两个数组的最后一个位置开始算,并在A中定义一个k变量,比较两个数组里面内容的大小,谁大把谁移到A数组里的最后一个位置,依次进行循环,出循环之后,因为是有序数组,所以谁里面有元素就把谁里面的元素移入A数组里面,依次循环。
public int[] merge (int[] A, int m, int[] B, int n) {int i = m-1;int j = n-1;int k=m+n-1;//谁大把谁移到K里面while (i>=0&&j>=0){if(i>j){A[k]=A[i];k--;i--;}else {A[k]=B[j];k--;j--;}}//谁先走完了,把剩下的元素移到A数组里面。while (i>=0){A[k]=A[i];k--;i--;}while (j>=0){A[k]=B[j];k--;j--;}return A;}