Java写题解的第1天:字符个数统计
由不重复联想到使用set
两种方法:第一种直接遍历字符串存入set,输出set长度即可;第二种建立一个长度为128的数组,检测字符是否出现,再遍历求得个数;
两种方法时间内存接近,时间复杂度均为O(n)
import java.io.*;
import java.util.HashSet;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
char[] cs = br.readLine().toCharArray();
br.close();
// 方法一:12ms 9428kb
HashSet<Character> set = new HashSet<>();
for(char c: cs) {
set.add(c);
}
System.out.println(set.size());
}
// 方法二:13ms 9444kb
public static int count(char[] cs) {
boolean[] set = new boolean[128];
int count = 0;
for(char c: cs) {
set[(int)c] = true;
}
for(boolean b: set) {
if(b)
count++;
}
return count;
}
}
京公网安备 11010502036488号