面试题 01.02. 判定是否互为字符重排
给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。
示例 1:
输入: s1 = "abc", s2 = "bca"
输出: true
示例 2:
输入: s1 = "abc", s2 = "bad"
输出: false
说明:
0 <= len(s1) <= 100
0 <= len(s2) <= 100
My Answer
class Solution {
public boolean CheckPermutation(String s1, String s2) {
if(s1.length()!=s2.length()) return false;
int[] nums = new int[128];
char[] ch1 = s1.toCharArray();
char[] ch2 = s2.toCharArray();
for (int i = 0; i < ch1.length; i++) {
nums[ch1[i]]++;
nums[ch2[i]]--;
}
for (int i = 0; i < nums.length; i++) {
if(nums[i]!=0) return false;
}
return true;
}
}
961. 重复 N 次的元素
在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。
返回重复了 N 次的那个元素。
示例 1:
输入:[1,2,3,3]
输出:3
示例 2:
输入:[2,1,2,5,3,2]
输出:2
示例 3:
输入:[5,1,5,2,5,3,5,4]
输出:5
提示:
4 <= A.length <= 10000
0 <= A[i] < 10000
A.length 为偶数
My Answer
class Solution {
public int repeatedNTimes(int[] A) {
for (int i = 0; i < A.length-2; i++) {
if(A[i]==A[i+1] || A[i]==A[i+2]) return A[i];
}
return A[A.length-1];
}
}