经过我仔细的研究琢磨,知道了这个题的大致思路
我自己在编译软件上没有完全的写下来,于是csdn。特写这个博客把这道题记录下来,之后会反复回顾并练习,了解这道题的做题方法。在以后遇到同类型的题时,能快速的写下来。
题意:一个字符串。问能不能划分成几段 使得每段的数字和相等 最少有2段。
思路:算出每位的前缀和 相等的数字和肯定是某位的前缀和 枚举每一位前缀和
#include<iostream>
#include‹string.h›
using namespace std;
int main()
int n,a[101],t=0;
string s;
cin››n>›s;
for (int i=0;i<s.length();it+)
a[++t]=s[il-'o':
int sum[101];
memset (sum, 0, sizeof (sum)) ;
for (int i=1;i<=n; itt)
sum[i]=sum[i-1]+a[il;
for (int i=1;i<n;i++)
{
int ans-0, cnt=0;
bool flag-true;
for (int j=i+1;j<=n;j++)
ans+=a[j]:
if(ans==sum[i])
{
flag-true;
ans=0;
cnt++;
}
if(ans&&ans>sum[i])flag-false;
if(ans&&ans<sum[i])flag-false;
if(cnt==0)flag-false;
1
if(flag)
{
cout<<"YES"<<endl;
return 0;
7
cout<<"NO"<<endl;
}
#include<string.h>中包含的函数
strlen求字符串长度
strcmp比较2个字符串是否一样
strcat字符串连接操作
strcpy字符串拷贝操作
strncat字符串连接操作(前n个字符)
strncpy字符串拷贝操作(前n个字符)
strchr 查询子串
strstr 查询字串
注意: C++中,string头文件基本上已经包含在iostream中了。 但是,平时使用的时候建议加上#include<string.h>(尤其在以下情况下) 1、使用string类型 2、使用cin、cout语句来输入输出string类型变量(注意,同时还需要#include<sstream>) 3、使用memset()、strlen()、strcpy()等函数时