Day17删除字符串中的所有相邻重复项

char * removeDuplicates(char * s){
    //求出字符串长度
    int strLength = strlen(s);
    //开辟栈空间。栈空间长度应为字符串长度+1(为了存放字符串结束标志'\0')
    char* stack = (char*)malloc(sizeof(char) * strLength + 1);
    int stackTop = 0;

    int index = 0;
    //遍历整个字符串
    while(index < strLength) {
        //取出当前index对应字母,之后index+1
        char letter = s[index++];
        //若栈中有元素,且栈顶字母等于当前字母(两字母相邻)。将栈顶元素弹出
        if(stackTop > 0 && letter == stack[stackTop - 1])
            stackTop--;
        //否则将字母入栈
        else
            stack[stackTop++] = letter;
    }
    //存放字符串结束标志'\0'
    stack[stackTop] = '\0';
    //返回栈本身作为字符串
    return stack;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果您需要修改`HR_ABSENCE`表的`CDAY`字段类型,可以按照以下步骤进行: 1. 备份数据 在修改字段类型之前,最好先对表的数据进行备份,以便出现问题时可以恢复数据。 2. 修改字段类型 可以使用`ALTER TABLE`语句修改字段类型,例如: ``` ALTER TABLE HR_ABSENCE MODIFY CDAY VARCHAR2(20); ``` 上述语句将`HR_ABSENCE`表的`CDAY`字段的类型修改为VARCHAR2,长度为20。如果希望将字段类型修改为其他类型,可以相应地修改语句。 3. 更新数据 在修改字段类型之后,需要将原来的日期数据转换为新的数据类型,可以使用`TO_DATE`函数将字符串转换为日期类型,例如: ``` UPDATE HR_ABSENCE SET CDAY = TO_DATE(CDAY, 'YYYY-MM-DD'); ``` 上述语句将`HR_ABSENCE`表的`CDAY`字段的数据类型从VARCHAR2修改为DATE,并将原来的字符串类型的日期数据转换为日期类型的数据。如果数据类型已经修改为DATE类型,可以跳过此步骤。 4. 修改函数 如果在函数引用了`HR_ABSENCE`表的`CDAY`字段,需要相应地修改函数,以便使用新的字段类型。可以修改函数的参数类型以及SQL查询语句,例如: ``` CREATE OR REPLACE FUNCTION check_continuous_days(input_table IN VARCHAR2, input_date_field IN VARCHAR2) RETURN NUMBER IS date_array DBMS_UTILITY.uncl_array; day_diff NUMBER; continuous_day NUMBER := 1; BEGIN -- 查询指定表的日期数据,并按照日期升序排序 EXECUTE IMMEDIATE 'SELECT ' || input_date_field || ' BULK COLLECT INTO date_array FROM ' || input_table || ' ORDER BY ' || input_date_field || ' ASC'; -- 按照日期顺序比较相邻两个日期之间的天数差 FOR i IN 2..date_array.count LOOP day_diff := date_array(i) - date_array(i-1); IF day_diff = 1 THEN continuous_day := continuous_day + 1; ELSE continuous_day := 1; END IF; END LOOP; -- 返回连续的天数 RETURN continuous_day; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM); RETURN NULL; END; ``` 在上述例子,我们使用`EXECUTE IMMEDIATE`语句动态生成SQL语句,以便在函数使用新的字段类型。同时,我们也需要相应地修改SQL查询语句的字段名和表名,以便与实际情况相符。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值