摘要: 华为的一道比较基础的面试题,就是查找一个字符串中某个子字符串出现的次数,并只考虑最左对齐的情况。 如在"helloejesjhelloejedjshhello"中查找子字符串"hello"出现的次数。 最直接的方法是使用遍历实现。int string_find( char str[], char substr[] ){ int i, j, check ,count = 0; int len = strlen( str ); /*取得字符串长度,不包括'\0'*/ int sublen = strlen( substr ); for( i 阅读全文
posted @ 2012-09-10 15:56 糙哥 阅读(8623) 评论(0) 推荐(0) 编辑
摘要: 进行二分查找的前提是数组已排序,这里假定数组递增排序。每次查找都将待查找数num与处于数组中间位置a[mid]的数进行比较,num < a[mid]则在mid之前的元素中进行查找,反之在mid之后的元素中进行查找。在函数中使用low, mid, high来对待查找的范围来进行标记。/*整数查找*/void binsearch( int num, int a[], int length ) /*num为待查找数字,length为数组a的长度*/{ int low, mid, high; low = 0; high = length - 1; while( low <= high ). 阅读全文
posted @ 2012-09-10 14:57 糙哥 阅读(3500) 评论(1) 推荐(0) 编辑