给定两个长度相同的字符串,判定他们是否是同构字符串。
同构字符串:指源字符串中每个字符串都可以被另一个字符替代,其中相同的字符一定要被同一个字符替代,例如:
s="egg",t="add" s与t是同构字符串
s="foo",t="bar" s与t不是同构字符串
s="paper",t="title" s与t是同构字符串
实现函数bool isIsomorphic(char *s,char *t);
#include <stdio.h>
#include <head.h>
#include <stdbool.h>
int find(char *str,int pos){
int len=strlen(str);
for(int i=0;i<len;i++){
if(str[pos]==str[i]){
return i;
}
}
return -1;
}
bool isIsomorphic(char* s, char* t) {
int len1=strlen(s);
int len2=strlen(t);
if(len1!=len2){
printf("字符串长度不匹配,请重试!\n");
return false;
}
for(int i=0;i<len1;i++){
if(find(s,i)!=find(t,i)){
return false;
}
}
return true;
}
int main(int argc, const char *argv[])
{
if(isIsomorphic("abc","foo")){
printf("true\n");
}else{
printf("false\n");
}
return 0;
}
这是我想出来的一种思路,也许会有一些错误,希望看过的大佬可以分享一下看法