题1:
给定一个字符串string iniString,请返回一个bool值,True代表字符串的所有字符全都不同,False代表存在相同的字符。保证字符串中的字符为ASCII字符且不允许使用额外的存储结构,字符串的长度小于等于3000。大小写字母算不同的字符
测试样例:
"aeiou" 返回:True
"BarackObama" 返回:False
解:
import java.util.*;
public class Different {
public boolean checkDifferent(String iniString) {
int[] map = new int[256];
boolean flag = true;
for(int i = 0;i < 256;i++)
{
map[i] = 0;
}
int len = iniString.length();
for(int i = 0;i < len;i ++)
{
if(map[iniString.charAt(i)] == 0)
{
map[iniString.charAt(i)] = 1;
}
else
{
flag = false;
}
}
return flag;
}
}
膜拜一下大佬的正则表达式:
import java.util.Scanner;
public class StringDiffer {
public static void main(String[] args) {
String s = new Scanner(System.in).next();
StringDiffer strdiffer = new StringDiffer();
System.out.println(strdiffer.checkDifferent(s));
}
public boolean checkDifferent(String iniString) {
return !iniString.matches(".*(.)(.*\\1).*");
}
}
题2:
输入一个字符串,请输出该字符串的反转字符串
测试样例:
输入:"aeiou" 输出:"uoiea"
输入:"BarackObama" 输出:"amabOkcarab"
import java.util.Scanner;
public class StringReverse {
public static void main(String[] args) {
String s = new Scanner(System.in).next();
int len = s.length();
String s_reverse = "";
for(int i = 0;i < len;i ++)
{
s_reverse += s.charAt(len - i - 1);
}
System.out.println(s_reverse);
}
}