387. 字符串中的第一个唯一字符
public class Solution{
//387. 字符串中的第一个唯一字符
// 给定一个字符串,找到它的第一个不重复的字符,
// 并返回它的索引。如果不存在,则返回 -1。
//解法思路:我们可以对字符串进行两次遍历。第一次遍历目的是构造字符串中所有字符出现的次数,第二次便利输出字符串第一个次数为一的字符
public int firstUniqChar(String s) {
char[] arr=new char[26];
char[] strArr=s.toCharArray();//构建字符串数组用于遍历计数
for (char c:strArr){//我们此时还需要一个方法能确定字符在对应数组中的位置
arr[seekIndex(c)]++;//字符出现一次我们就增加他的次数
}
int num=0;//用于技术字符在字符串中的位置
for (char c:strArr){
if (arr[seekIndex(c)]==1){
// return s.indexOf(c);方法一:利用String.index方法直接返回字符在字符串中的位置
return num;//方法二:采用了计数
}
num++;
}
return -1;//遍历数组都没有出现则说明不存在出现次数为一的字符
}
public int seekIndex(char c){
return c-'a';
}
}
125. 验证回文串
方法一:利用双指针
public class Solution {
//给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写
//解法一:利用双指针,分别从前后遍历比较
public boolean isPalindrome(String s) {
//由于此题不区分大小写,所以我们把字符串转为小写进行判断
char strArr[]=s.toLowerCase().toCharArray();
int i=0;//左指针
int j=s.length()-1;//右指针
while (i='a'&&c<='z'||c>='0'&&c<='9') {
return true;
}else{
return false;
}
}
}
方法二:利用reverse
public boolean isPalindrome(String s) {
char strArr1[]=s.toLowerCase().toCharArray();
StringBuffer sb=new StringBuffer(s);
char strArr2[]=sb.reverse().toString().toLowerCase().toCharArray();
int i=0;
int j=0;
while (i<=strArr1.length-1&&j<=strArr2.length-1){
while (i<=strArr1.length-1&&!isValid(strArr1[i])){
i++;
}
while (j<=strArr2.length-1&&!isValid(strArr2[j])){
j++;
}
if (i<=strArr1.length-1&&j<=strArr2.length-1&&strArr1[i]!=strArr2[j]){
return false;
}
i++;
j++;
}
return true;
}
public boolean isValid(char c){
if (c>='a'&&c<='z'||c>='0'&&c<='9') {
return true;
}
return false;
}
HJ1 字符串最后一个单词的长度
public class Main{
public static int seekLastWordLength(String s){
int i=s.lastIndexOf(" ");
String s1=s.substring(i+1);
return s1.length();
}
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
int num=Main.seekLastWordLength(s);
System.out.print(num);
}
}
public class Main{
public static int seekLastWordLength(String s){
int i=s.lastIndexOf(" ");
return s.length()-i-1;
}
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
int num=Main.seekLastWordLength(s);
System.out.print(num);
}
}



