描述
编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次 例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3 。 数据范围: 1 \le n \le 500 \1≤n≤500输入描述:
输入一行没有空格的字符串。
输出描述:
输出 输入字符串 中范围在(0~127,包括0和127)字符的种数。
示例1
输入:abc输出:
3
示例2
输入:aaa输出:
1
方法一:
1 import java.io.*; 2 import java.util.*; 3 4 public class Main { 5 public static void main(String[] args) throws IOException { 6 BufferedReader br = new BufferedReader(new InputStreamReader((System.in))); 7 String s; 8 while((s = br.readLine()) != null) { 9 String newS = ""; 10 for (int i = s.length()-1; i>=0; i--){ 11 char ch = s.charAt(i); 12 if( newS.indexOf(ch) < 0){ 13 newS = newS + ch; 14 } 15 } 16 System.out.println(newS.length()); 17 } 18 } 19 }
方法二:
1 import java.io.*; 2 import java.util.*; 3 4 public class Main { 5 public static void main(String[] args) throws IOException { 6 BufferedReader br = new BufferedReader(new InputStreamReader((System.in))); 7 String s = br.readLine(); 8 int[] a = new int[128]; 9 int count = 0; 10 for (int i=0; i<s.length();i++){ 11 char ch =s.charAt(i); 12 if(a[ch] == 0){ 13 count =count +1; 14 a[ch] = 1; 15 } 16 } 17 System.out.println(count); 18 } 19 }