Description
Write a method anagram(s,t)
to decide if two strings are anagrams or not.
Clarification
What is Anagram?
- Two strings are anagram if they can be the same after change the order of characters.
Example
Given s = "abcd"
, t = "dcab"
, return true
.
Given s = "ab"
, t = "ab"
, return true
.
Given s = "ab"
, t = "ac"
, return false
.
Challenge
O(n) time, O(1) extra space
解题:题目给定两个字符串,判断这两个字符串除了字符字符顺序不同外,是否相等。最容易想到的还是将字符排序,判断对位字符是否相等。不过在java中,要对字符串中的字符排序,只能转化成字符数组,那么就不满足challenge条件了。但是用其他方法(例如哈希表),代码就只能处理字母或者ASCII中的字符,有损通用性,没什么意思。贴一下排序方法的代码:
1 public class Solution { 2 /** 3 * @param s: The first string 4 * @param t: The second string 5 * @return: true or false 6 */ 7 public boolean anagram(String s, String t) { 8 // write your code here 9 char[]arr_s = s.toCharArray(); 10 char[]arr_t = t.toCharArray(); 11 Arrays.sort(arr_s); 12 Arrays.sort(arr_t); 13 return String.valueOf(arr_s).equals(String.valueOf(arr_t)); 14 } 15 }
原文地址:https://www.cnblogs.com/phdeblog/p/9125016.html
时间: 2024-11-12 08:54:38