题意是给你一个数字,然后问最少删掉几个数字能让这个数字变成一个完全平方数。可以枚举1-n的值的平方,然后转成字符串去操作。


AC代码:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int n,num1,num2;
string str1,str2;

int main()
{
	scanf("%d",&n);
	num1 = 0;
	int INF = -1;
	for(int k=1;k*k<=n;k++){
		int ans = k*k;
		str2 = to_string(ans);
		str1 = to_string(n);
		int i=0,j=0;
		int flag = 0;
		while(i < str2.size()){
			while(j < str1.size() && str1[j] != str2[i]){
				j++;
			}
			if( j == str1.size())flag = 1;
			i++;j++;
		}
		if(!flag)INF = str1.size() - str2.size();
	}
	if(INF == -1)cout<<"-1"<<endl;
	else
	cout<<INF<<endl;
	return 0;
}