题目描述:
我的解法:
1 class Solution { 2 public boolean checkRecord(String s) { 3 int sumA=0; 4 boolean flag=true;; 5 for(int i=0;i<s.length();i++){ 6 if(s.charAt(i)==‘A‘){sumA++;} 7 if(i<(s.length()-2)&&(s.charAt(i)==‘L‘)&&(s.charAt(i+1)==‘L‘)&&(s.charAt(i+2)==‘L‘)){ 8 flag=false; 9 } 10 } 11 if((sumA<2)&&(flag==true)){ 12 return true; 13 }else{ 14 return false; 15 } 16 } 17 }
java基础知识:
- 字符串获得长度:s.length()
- 获取字符串指定位置的字符值:s.charAt(i)
大神解法:
1 public static boolean checkRecord(String s) { 2 return s.indexOf("LLL") < 0 && s.split("A", -1).length <= 2; 3 }
java基础知识:
- int indexOf(String str): 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。
- public String[] split(String regex,int limit) regex是正则表达式分隔符,limit是分割的份数。
第二个参数有两种写法
- 一种是比较直观的,直接输入要分割的份数a
- 另一种是-1,输入-1可以理解为无限制匹配,也就是即使两个符号之间没有内容,也会在数组里面存一个空的值。第二个参数输入-1和不输入第二个参数的效果是一样的。