面试题 01.04. 回文排列
题目

代码
class Solution {
public boolean canPermutePalindrome(String s) {
long highBmp = 0, lowBmp = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) >= 64) {
highBmp ^= 1L << s.charAt(i) - 64;
} else {
lowBmp ^= 1L << s.charAt(i);
}
}
return Long.bitCount(highBmp) + Long.bitCount(lowBmp) <= 1;
}
}
class Solution:
def canPermutePalindrome(self, s: str) -> bool:
xor=0
for c in s:
xor^=1<<ord(c)
return xor & (xor-1)==0
面试题 01.07. 旋转矩阵
题目

思路

代码
class Solution {
public void rotate(int[][] matrix) {
int n=matrix.length;
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
int tmp=matrix[i][j];
matrix[i][j]=matrix[j][i];
matrix[j][i]=tmp;
}
}
int mid=n>>1;
for(int i=0;i<n;i++){
for(int j=0;j<mid;j++){
int tmp=matrix[i][j];
matrix[i][j]=matrix[i][n-j-1];
matrix[i][n-j-1]=tmp;
}
}
}
}
class Solution:
def rotate(self, matrix: List[List[int]]) -> None:
"""
Do not return anything, modify matrix in-place instead.
"""
n=len(matrix)
for i in range(n):
for j in range(i+1,n):
matrix[i][j],matrix[j][i]=matrix[j][i],matrix[i][j]
mid=n>>1
for i in range(n):
for j in range(0,mid):
matrix[i][j],matrix[i][n-j-1]=matrix[i][n-j-1],matrix[i][j]