#include <iostream>
#include <cstring>
using namespace std;
const int maxsize = 128;
void oneAway(char a[], char b[])
{
int dist = strlen(a) - strlen(b);
if(dist > 1 || dist < -1 )
{
cout << "false";
return;
}
if(dist == 0)
{
//check for 1 replace
int p=0;
for(int i=0; i< strlen(a); i++)
{
if(a[i] != b[i])
{
++p;
if(p>1)
{
cout << "false";
return;
}
}
}
}
else
{
//check for 1 insert or remove : (ab, a | b), (b, ab | ba)
int p=0;
int index = strlen(a) > strlen(b) ? 1 : 0;
int len = (index == 1) ? strlen(a) : strlen(b);
int change=0;
for(int i=0, j=0; i<len; i++, j++)
{
if(a[i] != b[j])
{
if(index == 1)
{
i++;
change++;
}
else
{
j++;
change++;
}
}
if(change >1)
{
cout << false;
return;
}
}
}
cout << "true";
}
int main() {
// your code goes here
char *a = "pale";
char *b = "pale";
oneAway(a, b);
return 0;
}
No comments:
Post a Comment