题目
先进行比对找出相同并且位置一致的值,然后针对剩下的值通过一个’0’-'9’的数组进行比对,针对原始字符串没有一个值则对应的数字字符的个数+1,然后guess的字符则对对应的数字字符的个数-1. code 代码如下:
class Solution {
public String getHint(String v1, String v2) {
int sameValueAndPos = 0;
StringBuilder sub1 = new StringBuilder();
StringBuilder sub2 = new StringBuilder();
for (int i = 0; i < v1.length(); i++) {
if (v1.charAt(i) == v2.charAt(i)) {
sameValueAndPos++;
} else {
sub1.append(v1.charAt(i));
sub2.append(v2.charAt(i));
}
}
int sameValueNotPos = 0;
int[] posNum = new int[10];
String sub1Str = sub1.toString();
for (int i = 0; i < sub1Str.length(); i++) {
posNum[sub1Str.charAt(i) - '0']++;
}
String sub2Str = sub2.toString();
for (int i = 0; i < sub2Str.length(); i++) {
int num = posNum[sub2Str.charAt(i) - '0'];
if (num > 0) {
sameValueNotPos++;
posNum[sub2Str.charAt(i) - '0']--;
}
}
return sameValueAndPos + "A" + sameValueNotPos + "B";
}
}