• 笔记


    【问题描述】
    小 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
    */
     
     
     
  • 相关阅读:
    myeclipse导入项目中的乱码问题的解决
    myeclipse中的jar包的引入与新建
    myeclipse如何修改默认存储文件路径
    oracle迁移数据到mysql
    如何设置myeclipse的编码格式
    tns的查找与修改
    在PL/SQL中输入SQL语句时关键字的首字母自动变成大写
    滤器处理中文编码
    题解导航
    莫队总结应用
  • 原文地址:https://www.cnblogs.com/chen-1/p/11778694.html
Copyright © 2020-2023  润新知