1. 實現乙個lite版的字串替換函式
c/c++:
char *strreplace(char *str, const char *sub,const char *rep)
限制條件和要求如下:
1.其中str為原字串,sub為待被替換的子串。為簡單起見, 假定字串sub和rep長度一樣
2.直接對原字串str進行修改並返回, 不得使用malloc/new開闢新的記憶體空間
3.不得使用任何庫函式/api, 包括但不限於strlen, strstr, strcpy, 如需使用類似功能, 請自行實現
#include #include using namespace std;
//此函式支援原字串中有多個子串的情況,將分別替換
//多個子字串重疊將處理為替換後跳過已替換部分,如aaabcd, aa, xx執行結果為xxabcd而不是***bcd
char *strreplace(char *str, const char *sub, const char *rep)
if (*(sub + i) == '\0')
else str++;
} return ret;
}int main()
2. 假設有兩個單鏈表a和b,不帶頭節點,且長度一樣,示例如下:
a:1->2->3->4
b:a->b->c->d
請逆轉交替合併兩個鍊錶,示例結果如下:
4->d->3->c->2->b->1->a
c/c++:
節點型別定義如下:
structnode ;
//c/c++實現
node *reverse_merge(node *a, node *b)
node *a1 = a->next;
node *b1 = b->next;
node *b2 = b1->next;
b->next = 0;
while (a1 != null)
a->next = b;
return a;
}node *buildlist(node *a, char c)
int main()
*/ node *c = reverse_merge(a, b);
while (c != null)
cout << endl;
system("pause");
return 0;
}
兩個簡單的面試題
分享兩個簡單的面試題,好吧,求質數的那個面試題居然沒做出來。要好好打基礎 public class study0812 獲取arr陣列中最大的數的索引,該索引加97就是字元中重複最多的字元 int maxindex 0 for int i 0 i arr.length 1 i return char...
面試題 兩個佇列實現棧
兩個佇列實現棧 前提已知 typedef struct queue queue void initqueue queue q void enqueue queue q,int key int dequeue queue q int sizeofqueue queue q int isqueueemp...
面試題 交換兩個變數的值
面試題 交換兩個變數 也許當你聽到這道題的時候會暗暗的發笑,這麼簡單的演算法題竟然拿出來作為面試題考,是不是也在懷疑這家公司的本身的能力與規模了呢。交換兩個變數 例如num1 5,num2 6 num1 6,num 5 怎麼樣是不是覺得灰常簡單,你是不是用下面的方法做的 int num1 5 int...