如何搭建php视频网站,品牌传播策划方案,网站维护步骤,网站空间代理加盟(1)Ransom Note 解题思路#xff1a; 题目叫做Ransom Note#xff0c;勒索信。勒索信#xff0c;为了不暴露字迹#xff0c;就从杂志上搜索各个需要的字母#xff0c;组成单词来表达的意思。这样来说#xff0c;题目也就清晰了#xff0c;判断杂志上的字是否能够组成勒索… (1)Ransom Note 解题思路 题目叫做Ransom Note勒索信。勒索信为了不暴露字迹就从杂志上搜索各个需要的字母组成单词来表达的意思。这样来说题目也就清晰了判断杂志上的字是否能够组成勒索信需要的那些字符。 这里需要注意的就是杂志上的字符只能被使用一次不过不用考虑大小写的问题。 有一种最简单的理解就是对于ransomNote里每个字符出现的次数必须小于或者等于该字符在magazine出现的次数。 原理就是列出了magazine的字母表然后算出了出现个数然后遍历ransomNote保证有足够的字母可用。 代码如下 1 public class Solution {2 public boolean canConstruct(String ransomNote, String magazine) {3 int[] arr new int[26];4 for (int i 0; i magazine.length(); i) {5 arr[magazine.charAt(i) - a];6 }7 for (int i 0; i ransomNote.length(); i) {8 if (-- arr[ransomNote.charAt(i) - a] 0) {9 return false;
10 }
11 }
12 return true;
13 }
14 } View Code (2)Repeated Substring Pattern 解题思路重复子串的长度必须是输入字符串长度的除数。从长度/ 2开始搜索str.length的所有可能除数如果i是长度的除数则重复从0到i该子串i次如果重复的子串等于输入str返回true。 代码如下 1 public class Solution {2 public boolean repeatedSubstringPattern(String str) {3 int sumStr str.length();4 for (int i sumStr / 2; i 1; i--) {5 if (sumStr % i 0) {6 int num sumStr / i;7 StringBuffer sb new StringBuffer();8 String strx str.substring(0, i); 9 for (int j 0; j num; j) {
10 sb.append(strx);
11 }
12 if (sb.toString().equals(str)) {
13 return true;
14 }
15 }
16 }
17 return false;
18 }
19 } View Code (3)Number of Segments in a String 解题思路记录空格数量即可。i位置的字符不是空格同时i的前一个字符是空格或者i等于0 代码如下 1 public class Solution {2 public int countSegments(String s) {3 int res 0;4 for (int i 0; i s.length(); i) {5 if (s.charAt(i) ! (i 0 || s.charAt(i - 1) )) {6 res;7 }8 }9 return res;
10 }
11 } View Code 转载于:https://www.cnblogs.com/struggleli/p/6221575.html