我一直在做一些代码问题。我找到了这个问题的特殊的问题。我理解了所有的一切,除了这一行m[s1.charAt(i)] = m[s2.charAt(i)+256] = i+1;,如果有人能解释这一点,这将是非常有帮助的。谢谢!
问题
给定两个字符串s和t,确定它们是否是同构的。
如果可以替换s中的字符以得到t,则两个字符串s和t是同构的。
在保持字符顺序的同时,必须用另一个字符替换所有出现的字符。没有两个字符可以映射到同一个字符,但是一个字符可以映射到自己。
示例1:
输入:s=“鸡蛋”,t=“添加”输出: true
示例2:
输入:s= "foo",t= "bar“输出: false
示例3:
输入:s=“纸张”,t=“标题”输出: true
溶液
public class Solution {
public boolean isIsomorphic(String s1, String s2) {
int[] m = new int[512];
for (int i = 0; i < s1.length(); i++) {
if (m[s1.charAt(i)] != m[s2.charAt(i)+256]) return false;
m[s1.charAt(i)] = m[s2.charAt(i)+256] = i+1;
}
return true;
}
}发布于 2021-08-28 15:47:51
因此,简单地说,做:
m[s1.charAt(i)] = m[s2.charAt(i)+256] = i+1;与“做”相同:
m[s1.charAt(i)] = i+1;
m[s2.charAt(i)+256] = i+1;所以如果我有:
int i = 20;
int y = 10;
i = y = 5;
System.out.println(i);
System.out.println(y);产出如下:
5
5https://stackoverflow.com/questions/68965765
复制相似问题