HJ10 字符个数统计
描述
编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127 ),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次
例如,对于字符串 abaca 而言,有 a、b、c 三种不同的字符,因此输出 3 。
数据范围: 1≤𝑛≤500 1≤n≤500
输入描述:
输入一行没有空格的字符串。
输出描述:
输出 输入字符串 中范围在(0~127,包括0和127)字符的种数。
示例:
输入:abc 输出:3
输入:aaa 输出:1
分析:
1.判断字符串中的字符是否在0–127的区间内。
2.使用LinkedHashSet集合去重。
代码:
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str=sc.next();
LinkedHashSet<Character> set=new LinkedHashSet<>();
for (int i = 0; i < str.length(); i++) {
if(str.charAt(i)>=0 &&str.charAt(i)<=127){
set.add(str.charAt(i));
}
}
System.out.println(set.size());
}
}
大佬代码:
import java.util.Scanner;
import java.util.BitSet;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String line = scanner.next();
//总共有128个字符。字需要用128位
BitSet bitSet = new BitSet(128);
for (char c : line.toCharArray()) {
//判断字符c是否已出现
if (!bitSet.get(c)) {
//未出现就设置为已出现
bitSet.set(c);
}
}
//统计有多少字符已出现过
System.out.println(bitSet.cardinality());
}
}
使用HashSet
import java.util.HashSet;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
String str=in.next();
HashSet<Character> hs=new HashSet<Character>();
for(int i=0;i<str.length();i++)
hs.add(str.charAt(i));
System.out.println(hs.size());
}
}
HJ11 数字颠倒
描述
输入一个整数,将这个整数以字符串的形式逆序输出
程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
数据范围: 0≤𝑛≤230−1 0≤n≤230−1
输入描述:
输入一个int整数
输出描述:
将这个整数以字符串的形式逆序输出。
示例:
输入:1516000 输出:0006151
输入:0 输出:0
分析:
1.把数字转为字符串。
2.使用StringBuilder类的reverse方法进行逆序。
代码:
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num=sc.nextInt();
String str=num+"";
StringBuilder sb=new StringBuilder(str);
sb=sb.reverse();
str=sb.toString();
System.out.println(str);
}
}
大佬代码:
使用for循环。
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int in=sc.nextInt();
String str=String.valueOf(in);
for(int i=str.length()-1;i>=0;i--){
System.out.print(str.charAt(i));
}
}
}