zoukankan      html  css  js  c++  java
  • 笔记

    【问题描述】
    小 N 是一个很萌很萌的爱记笔记的好孩子,他又准备在他的笔记本上记下一些文字 了。小 N 希望将这些文字按顺序记在他的笔记本上:假设笔记本的每一页都不限字数,且 他在记下每个字后都可以选择翻到下一页。小 N 有一个奇怪的习惯,笔记本的每一页中都 不能出现重复的字母。小 N 想知道,他最少记多少页笔记,才能按顺序记下全部文字? 【输入】 第一行包含一个仅由小写字母组成的字符串 S,表示小 N 希望记下的文字。
    【输出】 一行一个整数,表示小 N 记笔记的最少页数。
    【输入输出样例】
    note.in
    fsfhztctwzj 
     
     
    note.out
    3
    【数据范围】
    对于 40%的数据:1 ≤ |S| ≤ 10。
    对于 70%的数据:1 ≤ |S| ≤ 501。
    对于 100%的数据:1 ≤ |S| ≤ 525010。
     
    题解:
     
    【读题】
    可以抽象为:给定一个字符串,将此串分成尽量少的部分,并使每一部分都没有重复字母。
     
    【样例解释】
    fs//fhztc//twzj
     
    【思路
    对一个字符串,从第一个到最后一个枚举,每当有重复字母,ans++,
    并memset一下记录数组
     

    时间复杂度O(n)

    期望得分:100

     
    代码:
    #include<bits/stdc++.h>
    using namespace std;
    int ans=1;
    string a;
    bool flag[155];
    int main()
    {
        cin>>a;
        int len=a.length();
        for(int i=0;i<len;i++)
        {
            if(flag[a[i]])
            {
                ans++;
                memset(flag,0,sizeof(flag));
            }
            flag[a[i]]=1;
        }
        printf("%d",ans);
        return 0;
    } 
    /*
    fsfhztctwzj
    */
     
     
     
  • 相关阅读:
    命名对象继承2-验证Open*命名对象安全属性的传递
    命名对象继承1-验证Create*命名对象安全属性的传递
    讨论c/c++计算小数的精度问题
    隐藏进程名
    一个函数重载问题
    02-Python基础之列表
    01-Python基础之字符串
    django 实用工具dj-database-url 快速配置数据库
    Gerrit安装配置
    关于数学的摘抄
  • 原文地址:https://www.cnblogs.com/chen-1/p/11778694.html
Copyright © 2011-2022 走看看