博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Ransom Note
阅读量:5826 次
发布时间:2019-06-18

本文共 1253 字,大约阅读时间需要 4 分钟。

A very typical application of hash maps. Since I am now learning Java, I code in Java. The following code uses toCharArray() and getOrDefault(), which are learnt from .

public class Solution {    public boolean canConstruct(String ransomNote, String magazine) {        HashMap
map = new HashMap<>(); for (Character k : magazine.toCharArray()) { int v = map.getOrDefault(k, 0) + 1; map.put(k, v); } for (Character k : ransomNote.toCharArray()) { int v = map.getOrDefault(k, 0) - 1; if (v < 0) return false; map.put(k, v); } return true; }}

This code takes about 60ms.

In fact, arrays can be used to replace hash maps since the test cases of this problem only contan the 26 English letters. A array-version solution can be found and is rewritten below.

public class Solution {    public boolean canConstruct(String ransomNote, String magazine) {        int[] map = new int[26];        for (char k : magazine.toCharArray())            map[k - 'a']++;        for (char k : ransomNote.toCharArray()) {            int v = --map[k - 'a'];            if (v < 0) return false;        }        return true;    }}

This version is much faster, about 13ms.

转载地址:http://ncpdx.baihongyu.com/

你可能感兴趣的文章
安卓中数据库的搭建与使用
查看>>
AT3908 Two Integers
查看>>
渐变色文字
查看>>
C++ 0X 新特性实例(比较常用的) (转)
查看>>
node生成自定义命令(yargs/commander)
查看>>
各种非算法模板
查看>>
如何创建Servlet
查看>>
.NET 设计规范--.NET约定、惯用法与模式-2.框架设计基础
查看>>
win7 64位+Oracle 11g 64位下使用 PL/SQL Developer 的解决办法
查看>>
BZOJ1997:[HNOI2010]PLANAR——题解
查看>>
BZOJ1014:[JSOI2008]火星人prefix——题解
查看>>
使用Unity3D引擎开发赛车游戏
查看>>
HTML5新手入门指南
查看>>
opennebula 开发记录
查看>>
ubuntu 修改hostname
查看>>
sql 内联,左联,右联,全联
查看>>
C++关于字符串的处理
查看>>
6、Web Service-拦截器
查看>>
Flask 源码流程,上下文管理
查看>>
stream classdesc serialVersionUID = -7218828885279815404, local class serialVersionUID = 1.
查看>>