LeetCode笔记
383.赎金信
题目描述
我不会写,抄个作业
官方答案:
class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
if(ransomNote.length()>magazine.length()){
return false;
}
int[] abc = new int[26];
for(char c :magazine.toCharArray()){
//c-'a'的意思就是两个字母相减,ASCII码。两个字母相减的结果对应数组的位置,就代表一个字母出现的次数
abc[c-'a']++;
}
for(char c: ransomNote.toCharArray()){
//如果在magazine中有就26字母中相对应的位置剪掉
abc[c-'a']--;
//如果出校小于0的情况就是magazine数组中没有足够的字母与之对应
if(abc[c-'a']<0){
return false;
}
}
return true;
}
}
toCharArray()方法将字符串转为字符数组
class Solution:
def canConstruct(self, ransomNote: str, magazine: str) -> bool:
if len(ransomNote) > len(magazine):
return False
return not collections.Counter(ransomNote) - collections.Counter(magazine)
collections.Counter()方法是计算参数中字母的种类和个数
如果前者减去后者=0,表示前者所有字母都被后者剪掉了,返回0;
前面还有一个not,所以返回true。
412.FizzBuzz
题目描述
我的答案:
class Solution {
public List<String> fizzBuzz(int n) {
List<String> answer= new ArrayList<>();
for(int i=0;i<n;i++){
int num= i+1;
if(num%3==0&&num%5==0){
answer.add("FizzBuzz");
}
else if(num%3==0){
answer.add("Fizz");
}
else if(num%5==0){
answer.add("Buzz");
}
else answer.add(String.valueOf(num));
}
return answer;
}
}
笔记:Java List
List<String> list=new ArrayList<>();
1.添加、获取、删除元素
list.add("xxx"); list.get(1); list.remove(1); list.remove("xxx");
2.list是否包含某个元素
String tnt="时代少年团"; list.contains(tnt);//返回true或者false
3.list根据索引改变元素的值
String tnt1="majiaqi"; list.set(0,tnt1);
4.list查看元素的索引
list.indexOf("tnt1");
5.list是否为空
list.isEmpty();
6.将集合转换为字符串
list.toSting();
7.将集合转换为数组
list.toArray();
python:
class Solution:
def fizzBuzz(self, n: int) -> List[str]:
ans = []
for i in range(1, n + 1):
s = ""
if i % 3 == 0:
s += "Fizz"
if i % 5 == 0:
s += "Buzz"
if s == "":
s = str(i)
ans.append(s)
return ans