• 小算法汇总


    1. 在字符串1中删除字符串2中存在的字符

    算法思想:尽量使用O(n)而不是O(n2), 由于数组的下标和数组的值之间已经有一层映射关系了,因此利用它可以减少一次遍历,可以将O(n2)降为O(n).由于对于任意一个数字x, bitmap[x/8] |= x%8都能唯一表示,因此算法是成立的!

     1 #include<stdio.h>
     2 #include<string.h> 
     3 #include<stdlib.h> 
     4 
     5 void delete_str_char (char * main_str, char * sub_str)
     6 {
     7     if ((main_str == NULL) || (sub_str == NULL))
     8         return;
     9 
    10     char * sub_index = sub_str;
    11     char * main_index = main_str;
    12     char bitmap[256/8] = {0};
    13     char * str = (char *)malloc(strlen(main_str) + 1);
    14     char * index = str;
    15     memset (str, 0, strlen(str) + 1);
    16 
    17     while (*sub_index != '') {
    18         char suffix = ((*sub_index) / 8) - 1;
    19         char offset = (*sub_index) % 8;
    20 
    21         bitmap[suffix] |= (0x1 << (8 - offset));
    22         sub_index++;
    23     }
    24 
    25     while (*main_index != '') {
    26         char suffix = ((*main_index) / 8) - 1;
    27         char offset = (*main_index) % 8;
    28 
    29         if ((bitmap[suffix] & (0x1 << (8 - offset))) == 0) {
    30             *index = *main_index;
    31             index++;
    32         }
    33         main_index++;
    34     }
    35 
    36     *index = '';
    37     memcpy (main_str, str, strlen(str) + 1);
    38     free (str);
    39     return;
    40 }
    41 
    42 int main (int argc, char * argv[])
    43 {
    44     char test[] = "aabcdaaaaabcaacfsdfddeddsfandsamdna29131519351905";
    45 
    46     delete_str_char (test, "bcdef");
    47     printf ("%s
    ", test);
    48     return 0;
    49 }

    2. 删除字符串1中的在字符串2中不存在的字符

    只需要将上面的“==”换成“!=”即可

  • 相关阅读:
    IGeoDatabaseBridge2.GetLineOfSight
    selenium+python自动化测试--alert弹框
    web页面兼容性测试之browsershots工具使用
    selenium自动化测试之定位大全
    Android adb 命令大全
    接口自动化测试 httprunner+locust+python 安装与实践
    appium-uiautomator2-server-v0.x.x.apk does not exist or is not accessible 报错解决方法
    python基础3
    python1、2实践
    python基础2
  • 原文地址:https://www.cnblogs.com/hellokitty2/p/9624493.html
Copyright © 2020-2023  润新知