上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 18 下一页
摘要: 题目原文:Write a method to replace all spaces in a string with ‘%20’.译文:写一个函数,把字符串中所有的空格替换为%20 。解答简单题。先遍历一次字符串,得到空格个数,进而得到将空格转换成%20后的串长度 (每个空格替换为%20需要增加2个字符,x个空格增加2x个字符)。 然后从后向前依次对空格进行替换,非空格原样拷贝。如果原串有足够大的空间, 则替换过程直接在原串上进行, 因为从后向前替换的过程中,新串用到的空间一定是旧串不需要的空间,看图示:旧字符串:i am hawstein旧串索引: p新字符串:i%20am%20haws.. 阅读全文
posted @ 2013-07-09 14:48 一枚程序员 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 题目原文:Write a method to decide if two strings are anagrams or not.译文:写一个函数判断两个字符串是否是变位词。解答变位词(anagrams)指的是组成两个单词的字符相同,但位置不同的单词。比如说, abbcd和abcdb就是一对变位词。该题目有两种做法:O(nlogn)的解法由于组成变位词的字符是一模一样的,所以按照字典序排序后,两个字符串也就相等了。 因此我们可以用O(nlogn)的时间去排序,然后用O(n)的时间比较它们是否相等即可。代码如下:bool isAnagram1(string s, string t){ if... 阅读全文
posted @ 2013-07-09 14:43 一枚程序员 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 题目原文:Design an algorithm and write code to remove the duplicate characters in a string without using any additional buffer. NOTE: One or two additional variables are fine. An extra copy of the array is not.FOLLOW UPWrite the test cases for this method.译文:设计算法并写出代码移除字符串中重复的字符,不能使用额外的缓存空间。注意: 可以使用额外的一 阅读全文
posted @ 2013-07-09 14:33 一枚程序员 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 题目原文:Write code to reverse a C-Style String. (C-String means that “abcd” is represented as five characters, including the null character.)译文:写代码翻转一个C风格的字符串。(C风格的意思是"abcd"需要用5个字符来表示,包含末尾的 结束字符)解答这道题如果就是要考察你有没有注意到C风格字符串最后的那个结束符,那我觉得还是像书 上写的那样,在代码中有所体现。代码如下:void reverse(char *s){ char *end = 阅读全文
posted @ 2013-07-09 11:34 一枚程序员 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 题目原文:Implement an algorithm to determine if a string has all unique characters. What if you can not use additional data structures?译文:实现一个算法来判断一个字符串中的字符是否唯一(即没有重复).不能使用额外的数据结构。 (即只使用基本的数据结构)解答首先,你可以问面试官,构成字符串的字符集有多大?是ASCII字符,还是只是26个字母? 还是有更大的字符集,对于不同的情况,我们可能会有不同的解决方案。如果我们假设字符集是ASCII字符,那么我们可以开一个大小为25 阅读全文
posted @ 2013-07-09 11:10 一枚程序员 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 函数头://pStr 是指向以'\0'结尾的字符串指针//steps 是要求移动的步数void LoopMove(char *pStr, int steps){ //......}使用库函数实现:方法一:#define MAX_LEN 1000void LoopMove(char *pStr, int steps){ int n=strlen(pStr)-steps; char tmp[MAX_LEN]; strcpy(tmp,pStr+n); strcpy(tmp+seps,pStr); *(tmp+strlen(pStr))='\0'; ... 阅读全文
posted @ 2013-06-20 10:01 一枚程序员 阅读(516) 评论(0) 推荐(0) 编辑
摘要: 函数原型: int atoi(const char *nptr);函数说明: 参数nptr字符串,如果第一个非空格字符存在,并且,如果不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。代码:#include<stdio.h>#include<stdlib.h>#include <cctype>int my_atoi(const char* p){ if(p==NULL) return 0; bool neg_flag = false; // 符号标记 int res = 0; // 结果 .. 阅读全文
posted @ 2013-06-20 09:33 一枚程序员 阅读(514) 评论(0) 推荐(0) 编辑
摘要: 函数原型:char *itoa( int value, char *string,int radix);原型说明:value:欲转换的数据。string:目标字符串的地址。radix:转换后的进制数,可以是10进制、16进制等。功 能:把一个整数转换为字符串分析:整数转化为字符串,可以采用加‘0’,再逆序的办法,整数加'0'会隐式转化为char类型的数。代码如下:#include<stdio.h>#include<stdlib.h>int main(){ int num=12345; int i=0,j=0; char tmp[7],str[7]; wh 阅读全文
posted @ 2013-06-20 09:14 一枚程序员 阅读(930) 评论(0) 推荐(0) 编辑
摘要: 题目:一个url指向的页面里面有另一个url,最终有一个url指向之前出现过的url或空,这两种情形都定义为null。这样构成一个单链表。给两条这样单链表,判断里面是否存在同样的url。url以亿级计,资源不足以hash。如果交叉则最后节点的url肯定是相同的!不管链表是怎么链接的,不管链表a和链表b在实际实现中是不是有节点交叉,还是仅仅是节点的内容交叉,两个链表的最后节点肯定相同,如果是重复的话!要审题认真,认真考虑题目,最好能画图,这样就不会思路偏了一旦出现链表的题目,就一定要考虑到环和交叉的问题;本题可以抽象为有环和无环情况下的链表交叉问题:情况一:两条单链表均无环 最简单的一种... 阅读全文
posted @ 2013-05-23 13:25 一枚程序员 阅读(684) 评论(0) 推荐(0) 编辑
摘要: (1)如果说,在操作系统中引入进程的目的,是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量。那么,在操作系统中再引入线程,则是为了减少程序在并发执行时所付出的空间开销,使OS具有更好的并发性。进程是作为拥有系统资源的基本单位,同时也是一个可独立调度和分派的基本单位(线程也是)。通常进程包含多个线程并为它们提供资源(2)线程安全:如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导 阅读全文
posted @ 2013-05-23 09:23 一枚程序员 阅读(1025) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 18 下一页