目录

2325. 解密消息 - 简单ac

1、哈希表

2、数组

2331. 计算布尔二叉树的值 - dfs ac

1233. 删除子文件夹 - 排序

2341. 数组能形成多少数对 - 简单ac

2347. 最好的扑克手牌 - 哈希表计数

2363. 合并相似的物品 - 哈希表


2325. 解密消息 - 简单ac

2325. 解密消息

1、哈希表

class Solution {public String decodeMessage(String key, String message) {Map<Character,Character> mp=new HashMap<>();int cnt=0;for(int i=0;i<key.length();i++){char c=key.charAt(i);if(c!=' ') {char x=(char)(cnt%26+'a');if(!mp.containsKey(c)) {mp.put(c,x);cnt++;}}}/* for(Map.Entry<Character,Character> x:mp.entrySet()){System.out.println(x.getKey()+" "+x.getValue());}*/StringBuilder res=new StringBuilder();for(char c:message.toCharArray()){if(c==' ') res.append(c);else res.append(mp.get(c));}return res.toString();}
}
class Solution {
public:string decodeMessage(string key, string message) {unordered_map<char,char> mp;int cnt=0;for(char x:key){if(x!=' ')if(!mp.count(x)){mp[x]=(char)(cnt%26+'a');cnt++;}}string res;for(char c:message){if(c==' ') res+=c;else res+=mp[c];}return res;}
};

2、数组

class Solution {
public:string decodeMessage(string key, string message) {char mp[26]{};char i='a';for(char c:key){if(c!=' '&&!mp[c-'a'])  mp[c-'a']=i++;}string res;for(char x:message)if(x==' ') res+=x;else res+=mp[x-'a'];return res;}
};

2331. 计算布尔二叉树的值 - dfs ac

2331. 计算布尔二叉树的值

class Solution {public boolean evaluateTree(TreeNode root) {return dfs(root);}public boolean dfs(TreeNode rt){if(rt.left==null&&rt.right==null) return rt.val==1; //如果是叶子节点 返回值if(rt.val==2) return dfs(rt.left)|dfs(rt.right);else return dfs(rt.left)&dfs(rt.right);}
}

1233. 删除子文件夹 - 排序

1233. 删除子文件夹

思路:

先按字典序排序

如果f[i]不满足放f[i-1]的前缀条件,则将f[i]存入res中

因为排过序,所以经过判断后放进res的都不可能是子文件

因此每次从res尾部取出字符串作为前缀

前缀条件:

  • 字符串长度>前缀长度
  • 前缀字符相同
  • 第一个不同的字符是' / '
class Solution {public List<String> removeSubfolders(String[] f) {Arrays.sort(f);int n=f.length;List<String> res=new ArrayList<>();res.add(f[0]);for(int i=1;i<n;i++){int prelen=res.get(res.size()-1).length(); //res最后一个字符串的长度if(!(f[i].length()>prelen&&res.get(res.size()-1).substring(0,prelen).equals(f[i].substring(0,prelen))&&f[i].charAt(prelen)=='/')) res.add(f[i]);}return res;}
}
class Solution {
public:vector<string> removeSubfolders(vector<string>& f) {sort(f.begin(),f.end());vector<string> res;res.push_back(f[0]);for(int i=1;i<f.size();i++){string pre=res.back();if(!(f[i].size()>pre.size()&&f[i].substr(0,pre.size())==pre&&f[i][pre.size()]=='/'))res.push_back(f[i]);}return res;}
};
class Solution {public List<String> removeSubfolders(String[] f) {Arrays.sort(f);List<String> res=new ArrayList<>();String pre="//";for(String x:f){if(!x.startsWith(pre)){res.add(x);pre=x+"/";} }return res;}
}

2341. 数组能形成多少数对 - 简单ac

2341. 数组能形成多少数对

class Solution {public int[] numberOfPairs(int[] nums) {int[] res=new int[2];int[] cnt=new int[101];for(int x:nums) cnt[x]++;for(int i=0;i<101;i++){if(cnt[i]%2==1) res[1]+=cnt[i]%2;res[0]+=cnt[i]/2;}return res;}
}

2347. 最好的扑克手牌 - 哈希表计数

力扣

class Solution {public String bestHand(int[] ranks, char[] suits) {boolean f=true;for(int i=1;i<5;i++)if(suits[i]!=suits[i-1]){f=false;break;}if(f) return "Flush";int[] cnt=new int[14];boolean p=false;for(int x:ranks){cnt[x]++;if(cnt[x]==3) return "Three of a Kind";p=p||cnt[x]==2;}return p? "Pair":"High Card";}
}

2363. 合并相似的物品 - 哈希表

2363. 合并相似的物品

class Solution {public List<List<Integer>> mergeSimilarItems(int[][] items1, int[][] items2) {List<List<Integer>> res=new ArrayList<>();TreeMap<Integer,Integer> mp=new TreeMap<>();for(int[] x:items1) mp.put(x[0],x[1]);for(int[] x:items2) {mp.put(x[0],mp.getOrDefault(x[0],0)+x[1]);}for(Map.Entry<Integer,Integer> x:mp.entrySet()){List<Integer> list=new ArrayList<>();list.add(x.getKey());list.add(x.getValue());res.add(list);}return res;}
}

【2月每日一题】leetcode Java + c++版 (6 完结)相关推荐

  1. 【LeetCode】2022 7月 每日一题

    [LeetCode]2022 7月 每日一题 前言 七月太忙了,又是项目又是练车又是各种比赛.大概有10天的每日一题没有当天写完(虽然后面补上了). 将每日一题的所有思路记录在这里分享一下. 7.1 ...

  2. 【1月每日一题】leetcode Java + c++版 (12 完结)

    目录 2351.第一个出现两次的字母 2042. 检查句子中的数字是否递增 - 字符串模拟 1.c++ 纯模拟 2.c++ stringstream 分隔法 3.java split 2185. 统计 ...

  3. 每日一题 leetcode 997. 找到小镇的法官 java

    class Solution {public int findJudge(int n, int[][] trust) {if(trust.length==0){if(n==1) return 1;el ...

  4. [剑指offer]面试题第[48]题[Leetcode][JAVA][第3题][无重复字符的最长字串][滑动窗口][HashSet/Map]

    [问题描述][第3题][无重复字符的最长字串] 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度.示例 1:输入: "abcabcbb" 输出: 3 解释: 因为无重 ...

  5. [剑指offer]面试题第[67]题[Leetcode][JAVA][第8题] 字符串转换整数 (atoi)[字符串]

    [问题描述] 请你来实现一个 atoi 函数,使其能将字符串转换成整数.首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止.接下来的转化规则如下:如果第一个非空字符为正或者 ...

  6. 每日一题 -- LeetCode (十六)

    JavaScript / TypeScript for LeetCode 当前进程: 开始时间:2020.6.27 结束时间:undefined GitHub仓库:https://github.com ...

  7. Java防止Xss注入json_每日一题(java篇) 如何防止xss注入

    1.XssAndSqlHttpServletRequestWrapper 类: import java.util.regex.Pattern; import javax.servlet.http.Ht ...

  8. [剑指offer]面试题第[58]题[Leetcode][JAVA][第151题][翻转单词][字符串常用函数总结]

    [问题描述] 给定一个字符串,逐个翻转字符串中的每个单词.示例 1: 输入: "the sky is blue" 输出: "blue is sky the" [ ...

  9. java题霸_牛客题霸每日一题 + NC50 + Java题解

    import java.util.*; /* * public class ListNode { *   int val; *   ListNode next = null; * } */ publi ...

最新文章

  1. 软件开发经验总结(一)细节决定软件的成败
  2. 谢文睿:西瓜书 + 南瓜书 吃瓜系列 9. 集成学习(上)
  3. 重磅!Elasticsearch 8 正式发布!
  4. 「最新」《美国人工智能未来20年研究路线图》
  5. 2021银川Problem D. Farm(不保证正确性)
  6. Java面向对象(19)--抽象类与抽象方法abstract
  7. 一、Insertion sort
  8. tree方法php,jsTree详细使用说明
  9. 加密解密学习--基本概念拾掇
  10. html无限弹窗关不掉,使用cmd命令时出现无限弹窗的故障如何终止
  11. java postgresql jdbc驱动 下载,PostgreSQL的JDBC驱动和URL
  12. 文件对比软件Beyond Compare提示文件禁止编辑的解决方法
  13. 《非暴力沟通》- 使人情意相通的沟通方式
  14. 云计算云存储的一些基本概念
  15. 在html5中,用于获得用户当前位置的方法
  16. 【微机原理与接口 4】—— 寻址方法与指令系统 1(16位寻址方式解析)
  17. 蓝桥杯单片机01——74HC138与74HC573
  18. wear手表软件合集_如何找出正在使用Android Wear手表电池的电池
  19. 对于计算机专业的个人理解
  20. 一篇文章入门Mysql

热门文章

  1. 1期精彩推荐:如何应对工作中的冲突?
  2. 应届生想做产品经理该怎么走?
  3. 如何自建微信外卖平台_本地外面平台怎么起步,如何自建微信外卖平台
  4. html 自定义模态框,自定义对话框、模态框
  5. layui表格宽度自适应
  6. 天耀18期 – 6.面向对象-类和对象【作业】.
  7. java Double去掉科学计数E
  8. 微信公众号 多台服务器,在多台 Linux 服务器上搭建 Pulsar 集群
  9. java网络编程 TCP程序
  10. linux内核 4g拨号,openwrt 基于qmi的 3G|4G拨号