美文网首页
教训篇:负数不可以与unsigned比较

教训篇:负数不可以与unsigned比较

作者: iDucky131 | 来源:发表于2020-02-11 23:06 被阅读0次

负数一定不可以与unsigned类型比较,先前看到过这种说法,没想到今天写代码的时候碰到了,在这里记录一下。

class Solution {
public:
    void getNext(string s,int next[]){
        int k,j=0;
        next[0]=-1;
        k=next[j];
        while(j<s.length()-1){
            if(k==-1||s[k]==s[j]){
                j++;
                k++;
                next[j]=k;
            }else{
                k=next[k];
            }
        }
    }
    int strStr(string haystack, string needle) {
        if(needle.empty())
            return 0;
        int next[needle.length()];
        getNext(needle,next);
        int i=0,j=0;
        while(i<haystack.length()&&j<needle.length()){
            if(j==-1||haystack[i]==needle[j]){
                i++;
                j++;
            }else
                j=next[j];
        }
        if(j==needle.length())
            return i-j;
        else
            return -1;

    }
};

在实现KMP算法时,在while(i<haystack.length()&&j<needle.length())判断句中,因为length()返回值是unsigned,而且j可能为负数,所以出现了负数与unsigned比较的情况导致出错,必须改为:

 int hlength=haystack.length(),nlength=needle.length();
 while(i<hlength&&j<needle.length)

以后一定要长记性!

相关文章

  • 教训篇:负数不可以与unsigned比较

    负数一定不可以与unsigned类型比较,先前看到过这种说法,没想到今天写代码的时候碰到了,在这里记录一下。 在实...

  • htb optimistic

    这道题考察两个知识点: 1。int与unsigned int比较,用负数跳过比较,实现大量输入。 2。输入变相限制...

  • 创建商品分类表

    -- unsigned:无符号类型指的是非负数类型 -- 创建商品分类表 create table if not ...

  • 进制的转换

    进制的转换 有符号数(signed):既能表示正数也能表示负数的整数,包括零. 无符号数(unsigned):只能...

  • CPP学习(二)

    学习点 命名空间 变量 枚举 问题 定义了变量类型为unsigned,为啥还能传递负数进去?为啥float类型的数...

  • C++自学计划-数据类型-02

    一共6种: 可以使用以下字符进行修饰: signed:(-N~N-1) unsigned:非负数(>=0) sho...

  • C语言笔记1

    也就意味着,使用了 unsigned 只能表示正数,不能表示负数了。 输出无符号数使用 %u 整数的前缀 在程序中...

  • unsigned int问题

    输入结果为 > 0,因为unsigned与非unsigned处理,都是unsigned。所以用u%输出会是一个很大...

  • Java中byte类型整数与int类型整数大小比较

    Java中byte类型整数与int类型整数大小比较 一个byte数,若最高位为1,相当于负数。因为正数大于负数,则...

  • 负数你是新来的2

    上一篇说到了负数的加减。 那么接下来我们说说负数的乘法。 比较大小是通过数轴来说明的。 加法是通过移动来说明的。 ...

网友评论

      本文标题:教训篇:负数不可以与unsigned比较

      本文链接:https://www.haomeiwen.com/subject/gswffhtx.html