从今天开始记录一下学习算法的例程,贵在坚持!
写出一个函数 anagram(s, t)
去判断两个字符串是否是颠倒字母顺序构成的
样例 给出 s="abcd"
,t="dcab"
,返回 true
难都系数*
以下是java代码实现:
public class Solution {
/**
* @param s: The first string
* @param b: The second string
* @return true or false
*/
public boolean anagram(String s, String t) {
// write your code here
//若两个字符串的长度不相等直接返回false
if(s.length()!=t.length()){
return false ;
}
//定义一个存储字符ASSIC值的数组
int[] count = new int[256];
for(int i=0;i<s.length();i++){
//遍历字符串,将每一个字符的ASSIC码值作为数组下标的索引,并将对应的数组值+1
count[(int)s.charAt(i)]++;
}
for(int j=0;j<t.length();j++){
<pre name="code" class="java">//遍历字符串,将每一个字符的ASSIC码值作为数组下标的索引,并将对应的数组值-1
count[(int)t.charAt(j)]--; if(count[(int)t.charAt(j)]<0){
//若存在任一对应位置的的值小于0,返回false
return false ;
}
}
return true;
}
};