博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cracking the Coding Interview Q1.3
阅读量:5800 次
发布时间:2019-06-18

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

hot3.png

My Solution:

package chapter1;/** * Write a method to decide if two strings are anagrams or not. *  * @author jd *  */public class Q1_3 {    /**     * Assume the char set is extended ASCII, we check whether the two string     * have identical counts for each char.     */    static boolean permutation(String a, String b) {        if (a == null)            return b == null;        int[] count = new int[256];        for (int i = 0; i < a.length(); i++) {            count[a.charAt(i)]++;        }        //this part is so nice        for (int i = 0; i < b.length(); i++) {            count[b.charAt(i)]--;            if (count[b.charAt(i)] < 0)                return false;        }        return true;    }    public static void main(String[] args) {        String[][] pairs = { { "apple", "papel" }, { "carrot", "tarroc" }, { "hello", "llloh" } };        for (String[] pair : pairs) {            String word1 = pair[0];            String word2 = pair[1];            boolean anagram = permutation(word1, word2);            System.out.println(word1 + ", " + word2 + ": " + anagram);        }    }}

Solutions:

public static boolean permutation(String s, String t) {		if (s.length() != t.length()) {			return false;		}				int[] letters = new int[256];		 		char[] s_array = s.toCharArray();		for (char c : s_array) { // count number of each char in s.			letters[c]++;  		}		  		for (int i = 0; i < t.length(); i++) {			int c = (int) t.charAt(i);		    if (--letters[c] < 0) {		    	return false;		    }		}		  		return true;	}

转载于:https://my.oschina.net/jdflyfly/blog/220117

你可能感兴趣的文章
数据指标/表现度量系统(Performance Measurement System)综述
查看>>
GitHub宣布推出Electron 1.0和Devtron,并将提供无限制的私有代码库
查看>>
Angular2, NativeScript 和 React Native比较[翻译]
查看>>
论模式在领域驱动设计中的重要性
查看>>
国内首例:飞步无人卡车携手中国邮政、德邦投入日常运营
查看>>
微软将停止对 IE 8、9和10的支持
查看>>
微服务架构会和分布式单体架构高度重合吗
查看>>
如何测试ASP.NET Core Web API
查看>>
《The Age of Surge》作者访谈
查看>>
测试人员的GitHub
查看>>
Spring Web Services 3.0.4.RELEASE和2.4.3.RELEASE发布
查看>>
有关GitHub仓库分支的几个问题
查看>>
无服务器计算的黑暗面:程序移植没那么容易
查看>>
云原生的浪潮下,为什么运维人员适合学习Go语言?
查看>>
Webpack入门教程三十
查看>>
EAServer 6.1 .NET Client Support
查看>>
锐捷交换机密码恢复(1)
查看>>
Kali linux virtualbox rc=1908 错误解决办法
查看>>
Erlang学习总结之Erlang语法中的逗号(,)、分号(;),句号(.)的正确用法...
查看>>
linux软件包管理之三(源代码安装)
查看>>