将一个int类型的数字转化为字符串,并判断有无重复字符串(长度应大于等于2)有返回1,无返回0

#include 
#include 
#include 
#include 

using namespace std;

const int MAXN = 20;

int solve(int n)
{
	char buf[MAXN];
	
	sprintf(buf, "%d", n);
	string s = buf;
	set strSet;
	
	for (size_t len = 2, size = s.length(); len < size; len++) {
		for (size_t i = 0; i <= size - len; i++) {
			string tmp = s.substr(i, len);
			if (strSet.count(tmp)) return 1;
			strSet.insert(tmp);
		}
	}
	
	return 0;
}

int main()
{
	
	int n;
	scanf("%d", &n);
	int ans = solve(n);
	printf("%d\n", ans);
	
	return 0;
}

你可能感兴趣的:(面试)