10 2011 档案
天天算法03——二元查找树转变成排序的双向链表
摘要:题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \ 4 8 12 16转换成双向链表4=6=8=10=12=14=16。解答:二元查找树: 它首先要是一棵二元树,在这基础上它或者是一棵空树;或者是具有下列性质的二元树: (1)若... 阅读全文
posted @ 2011-10-29 20:07 comeby 阅读(256) 评论(0) 推荐(0)
天天算法02——删除字符串中所给定的字符串
摘要:题目:(华为2010上机题)在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。要求实现函数:int delete_sub_str(const char *str, const char *sub_str, char *result_str)【输入】 str:输入的被操作字符串 sub_str:需要查找并删除的特定子字符串【输出】 result_str:在str字符串中删除所有sub_str子字符串后的结果【返回】 删除的子字符串的个数解答:#include <stdio.h>#include <string.h>#include <std 阅读全文
posted @ 2011-10-27 12:58 comeby 阅读(954) 评论(0) 推荐(0)
天天算法01——左旋转字符串
摘要:题目:(微软面试100题中的第26题)定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。如把字符串abcd1234左旋转4位得到字符串1234abcd。请实现字符串左旋转的函数,要求对长度为n的字符串操作的时间复杂度为O(n),空间复杂度为O(1)。 解答:逆序排列abcd:abcd1234 → dcba1234;逆序排列1234:dcba1234 → dcba4321;全部逆序:dcba4321 → 1234abcd。#include <stdio.h>#include <string.h>void revise(char *str, int len 阅读全文
posted @ 2011-10-26 22:31 comeby 阅读(301) 评论(0) 推荐(0)
分布式缓存服务器负载均衡问题
摘要:很久没有写博客了,发现自己总是办事总是虎头蛇尾,要改要改呀!言归正传,前几天听了下百度的公开讲座,讲座结束讨论的一个问题挺有意思,拿出来与大家共享。 问题:百度网站采用4台服务器来响应用户请求,假设每台服务器都带有缓存功能,怎么使用户请求均匀落在缓存这些缓存服务器上呢? 解决办法:为了使用户请求均匀分布在这四台服务器上,我们可以对用户的检索关键词分词后进行hash,然后对hash出的数对4取... 阅读全文
posted @ 2011-10-25 22:25 comeby 阅读(2854) 评论(0) 推荐(0)