• 小P的字符串


    题目描述
    小P最近在研究字符编码,给出一串由0、1组成的字符串,从中任意进行截取,如果截取的字符串对应一个英文字母的ASCII值,小P就把这个0、1串叫字母子串,问给定的字符串最多能截取出多少个字母子串。 
    输入
    测试数据有多组,每组一行由0、1组成的字符串,每行长度不超过10000。  
    输出
    对于每组输入,在一行中输出最多可以截取的字母子串的数量。 
    样例输入 Copy
    1011010111
    样例输出	Copy
    1
    提示
    每个字母的ASCII码对应的二进制数都是7位, 1011010 的值是90,对应的是大写字母‘Z’的ASCII码,剩下的是111不对应任何字母,所示只能截取出一个字母子串。
    

     错误代码:‘

    #include<iostream>
    #include<cmath>
    using namespace std;
    string str;
    int main()
    {
        int j,i,len,num,sum=0;
        string arr;
        cin>>str;
        str=' '+str;
        len=str.length();
        for(i=1;i<=len-7;i++){
        arr.clear();
        num=0;
        arr=str.substr(i,7);    
    //    cout<<"arr="<<arr<<endl;
        for(j=0;j<arr.length();j++)
        if(arr[j]-'0')
        num+=pow(2,6-j);
        
        if(num>=65&&num<=122) {
        i+=6;
        sum++;
        cout<<"arr="<<arr<<endl;
    //}
        }
    } 
    cout<<sum;
    }
    View Code

     思路特么的正确,错在a---z  65--90   A----Z    97---122

    #include<iostream>
    #include<cmath>
    using namespace std;
    string str;
    int main()
    {
        int j,i,len,num,sum=0;
        string arr;
        while(cin>>str){
        str=' '+str;
        len=str.length();
        sum=0;
        for(i=1;i<=len-7;i++){
        arr.clear();
        num=0;
        arr=str.substr(i,7);    
    //    cout<<"arr="<<arr<<endl;
        for(j=0;j<arr.length();j++)
        if(arr[j]-'0')
        num+=pow(2,6-j);
        
        if(num>=65&&num<=90||num>=97&&num<=122) {
        i+=6;
        sum++;
    //    cout<<"arr="<<arr<<endl;
    //}
        }
    } 
    cout<<sum<<endl;
    }
    }
    View Code
  • 相关阅读:
    十个提升你Emacs生产力的高招
    emacs 操作集锦
    分页
    JAVA获取CLASSPATH路径
    用Spring的mappingDirectoryLocations来配置Hibernate映射文件
    ajax请求后台,返回json格式数据,模板!
    javascrip中的confirm小技巧
    如何将word图片粘贴到eWebEditor里面
    如何将word图片粘贴到wangEditor里面
    如何将word图片粘贴到xhEditor里面
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/10471932.html
Copyright © 2020-2023  润新知