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); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)