qq赞网站推广免费百度软件商店
1、学生出勤记录I
//给定一个字符串来代表一个学生的出勤记录,这个记录仅包含以下三个字符: // // // 'A' : Absent,缺勤 // 'L' : Late,迟到 // 'P' : Present,到场 // // // 如果一个学生的出勤记录中不超过一个'A'(缺勤)并且不超过两个连续的'L'(迟到),那么这个学生会被奖赏。 // // 你需要根据这个学生的出勤记录判断他是否会被奖赏。 // // 示例 1: // // 输入: "PPALLP" //输出: True // // // 示例 2: // // 输入: "PPALLL" //输出: False // // Related Topics 字符串
public boolean checkRecord(String s) {if(s.length() == 1){return true;}int num1 = 0;for (int i = 0; i < s.length()-2; i++) {if(s.charAt(i) == 'A'){num1++;if(num1 > 1){return false;}}else if(s.charAt(i) == 'L' && s.charAt(i+1) == 'L' && s.charAt(i+2) == 'L'){return false;}}for (int i = s.length()-2; i < s.length(); i++) {if(s.charAt(i) == 'A'){num1++;if(num1 > 1){return false;}}}return true;}
2、反转字符串中的单词
//给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 // // // // 示例: // // 输入:"Let's take LeetCode contest" //输出:"s'teL ekat edoCteeL tsetnoc" // // // // // 提示: // // // 在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。 // // Related Topics 字符串
注意将字符数组转化为字符串的方式。
public String reverseWords(String s) {int m = 0;char[] chars = s.toCharArray();for (int i = 0; i < s.length(); i++) {if(s.charAt(i) == ' '){reverse(chars, m, i-1);m = i + 1;}else if(i == s.length() - 1){reverse(chars, m, i);}}return new String(chars);}private void reverse(char[] chars, int i, int j){while(i < j){char ch = chars[j];chars[j] = chars[i];chars[i] = ch;i++;j--;}}