zoukankan      html  css  js  c++  java
  • 小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
  • 相关阅读:
    linux shell 总结
    python小结
    python与execl的读写
    利用burpsuits暴力破解登陆界面
    python之函数的使用
    Sublime text怎么识别input函数
    ping的禁止
    Hbase的配置与使用
    JAVA 利用反射自定义数据层框架
    JAVA实现网页上传头像
  • 原文地址:https://www.cnblogs.com/helloworld2019/p/10471932.html
Copyright © 2011-2022 走看看