zoukankan      html  css  js  c++  java
  • LeetCode之383. Ransom Note

    --------------------------------------------

    思路就是进行频率统计。

    统计一下第二个字符串字符出现次数++
    统计一下第一个字符串中字符出现次数--
    如果出现负数说明第二个中的字符不够用的。

    AC代码如下:

    public class Solution {
        public boolean canConstruct(String ransomNote, String magazine) {
            int book[]=new int[26];
            for(int i=0;i<magazine.length();i++) book[magazine.charAt(i)-'a']++;
            for(int i=0;i<ransomNote.length();i++) book[ransomNote.charAt(i)-'a']--;
            for(int i=0;i<book.length;i++) if(book[i]<0) return false;
            return true;
        }
    }

    改进的AC代码(节省了一个for循环):

    public class Solution {
        public boolean canConstruct(String ransomNote, String magazine) {
            int book[]=new int[26];
            for(int i=0;i<magazine.length();i++) book[magazine.charAt(i)-'a']++;
            for(int i=0;i<ransomNote.length();i++) if(--book[ransomNote.charAt(i)-'a']<0) return false;
            return true;
        }
    }

    或者:

    统计一下第一个的字符出现次数++;
    统计一下第二个字符出现次数--
    如果出现正数说明第一个没减完呗

    AC代码:

    public class Solution {
        public boolean canConstruct(String ransomNote, String magazine) {
            int book[]=new int[26];
            for(int i=0;i<ransomNote.length();i++) book[ransomNote.charAt(i)-'a']++;
            for(int i=0;i<magazine.length();i++) book[magazine.charAt(i)-'a']--;
            for(int i=0;i<book.length;i++) if(book[i]>0) return false;
            return true;
        }
    }

    题目来源: https://leetcode.com/problems/ransom-note/

  • 相关阅读:
    hadoop安装前的准备
    记录一次Qt5程序无法运行的解决过程
    C#里的Thread.Join与Control.Invoke死锁情况
    qbxt7月笔记
    zhxのDP讲
    有n*m的方格图
    最长上升子序列相关问题笔记
    qbxt游记(清北澡堂划水记
    DAZの七下道法(持续更新
    模板
  • 原文地址:https://www.cnblogs.com/cc11001100/p/5997940.html
Copyright © 2011-2022 走看看