topics

全部话题 - 话题: strlen
首页 1 2 3 4 5 末页 (共6页)
j*****g
发帖数: 223
1
// txt -> text
// p -> pattern (include . and *)
void pattern_match(const char *txt, const char *p)
{
int **d = NULL;
int len_txt = 0, len_p = 0;
int i, j, k;
if (!txt || !p) goto exit;
len_txt = strlen(txt);
len_p = strlen(p);
if (len_txt == 0 || len_p == 0) goto exit;
printf("text : %s\n", txt);
printf("pattern: %s\n", p);
d = new int*[len_p];
if (!d) goto exit;
memset(d, NULL, sizeof(int*) * len_p);
for (i = 0; i < len_p; i++)
{
... 阅读全帖
d**e
发帖数: 6098
2
不递归,O(nm)时间,O(1)空间的
n = strlen(str)
m = strlen(pattern) if pattern has no *, else n
i**********e
发帖数: 1145
3
另外,这是我的重写的新代码,我觉得比我之前的版本要简洁些。
而且这版本也处理'.'为一个任意字母。
bool match(const char *str, const char *pattern) {
const char *p1 = pattern, *p2 = str;
// If the first character is a letter, need to match letter by letter.
while (*p1 != '*') {
if (!*p1 && !*p2) return true;
if (!*p1 || !*p2) return false;
if (*p1 == '.' || *p1 == *p2) {
p1++;
p2++;
} else {
return false;
}
}
while (true) {
// Now *p1 must be '*'
while (*p1 && *p1 == '*') {
p1++;
... 阅读全帖
P********l
发帖数: 452
4
What's the purpose of following code? It works just fine without it.
if (!*p1) {
// the code below is doing the same as: s2 = s2+strlen(s2)-strlen(s1
);
const char *t1 = s1, *t2 = s2;
while (*t1++)
t2++;
while (*t2++)
s2++;
while (*s1) {
if (*s1 == '.' || *s1 == *s2) {
s1++;
s2++;
} else {
return false;
}
}
return true;
}
The single letter variables ... 阅读全帖
c***2
发帖数: 838
5
Here's the full file. You may compile and run: any case I missed?
==================================================================
/* wild.c
*/
#include
#include
#include
#define STR_SIZE 256
//===========================================================
int matchndots(const char *text, const char *dstr, int len)
{
while(len&&*text&&*dstr&&(*text==*dstr || *dstr=='.')){
text++;
dstr++;
len--;
}

if(!len)
return 1;
... 阅读全帖
q*******i
发帖数: 353
6
来自主题: JobHunting版 - 请问这样写程序错了吗?
int main()
{
char *pString1 = "AAA";
char *pString2 = "BBBBB";
int len = strlen(pString2);
char *NewpString1 = pString1 ;

for(int i=0;i {
*pString1++ = *pString2++;
}
}
return 1;
}
运行之后是 Access violation 。 难道因为pString1 是 string literal,不能写?
要怎么改呢?谢谢
i**********e
发帖数: 1145
7
来自主题: JobHunting版 - 这题谁知道答案?
这题蛮有意思的,我刚写完。
其实 idea 挺容易明白,我说一次给你听就明白了,但是没图解释起来比较费劲。这题
最复杂的地方其实就是选择怎么把数据结构结合起来。
一开始我以为要用 dp,其实 greedy 就可以了。
总复杂度是 O(N lg M),N 为 str 的长度,M 为 pattern 的长度。
主要原因有个 lg M 是因为 STL map 里的 find() 函数复杂度为 O(lg M).
我用的是 map + queue + hashtable (有点吓人呵呵,可能我想太复杂了)。
我暂时还没想到怎么提升到 O(N),应该是利用一个更好的数据结构吧。如果有高人知
道怎么提升到 O(N),请指点一下吧~
这是我做的 test cases:
第一行是 string 和 pattern,
第二行是函数 return 的 start and end position,然后是 shortest substring。
cabeca cae
3 5 eca
cfabeca cae
4 6 eca
cabefgecdaecf cae
9 11 aec
cabwefgewcw... 阅读全帖
c***2
发帖数: 838
8
来自主题: JobHunting版 - map numbers to strings
Ok. I play it further to get a utility program.
==================================================
/* telwords.c

Given a telephone number (or any number),
print all possible words based on
digits-letters mapping from telephone key pads.
*/

#include
#include
#include
static char *digitsmaps[]={
"0",
"1",
"ABC",
"DEF",
"GHI",
"JKL",
"MNO",
"PQRS",
"TUV",
"WXYZ",
"#",
NULL
};

void doPrintTelephoneWo... 阅读全帖
w******p
发帖数: 166
9
来自主题: JobHunting版 - 经典面试题
http://en.wikipedia.org/wiki/Multiplication_algorithm
an implementation of the "lattice mul":
#include
#include
void box(const char* v1, const char* v2)
{
size_t len1 = strlen(v1);
size_t len2 = strlen(v2);
size_t lres = len1 + len2;
char res[lres+1];
size_t i1, i2;
for (i1 = 0; i1 < lres; i1 ++)
res[i1] = 0;
res[lres] = '\0';
for (i1 = 0; i1 < len1; i1 ++)
for (i2 = 0; i2 < len2; i2 ++)
{
int int1 = (int) (v1[len1-1-i1... 阅读全帖
g*******s
发帖数: 490
10
感想,居然第一题就考到了goto。。我靠。。
有两三道题程序实在是太长,一堆指针+loop,看不清楚,不过这些程序基本是找错。。只能看答案猜了
最好两台电脑,一台要打程序,查资料操作不过来,如果有帮手就更好了
1. variable definition 和 declaration的 区别
2. 怎么是最portable的方法操作integer最高位的那个byte,比如设1
3. vfprintf考到了
4. char *x;
x="abcd"
请问这个操作的意义,合法不合法?空间是怎么allocate
5. freebsd某个头文件的一个macro
#if defined xxxx
#define _p(xxx) (xxx)
#else
#define _p(xxx) ()
#end
what does this macro for
6. memcpy 在某个iso xxx标准中的标准declaration是
7. memmve
8.哪个方法是一个c program必须的方法,main?
9. c提供了哪个方法获取 any file的 size
10. file * fp ... 阅读全帖
h*****1
发帖数: 74
11
来自主题: JobHunting版 - 愤怒,amazon interviewer 不知KMP 算法
int kmp_next(const char* pattern, int n)
{
int nex = 0;
for (int i = n; i >=0; --i)
{
int j = i;
int nn = n;
while(pattern[j--] == pattern[nn--])
{
++nex;
if (-1 == j)
return nex;
}
}
}
int kmp_match(const char* s, const char* p)
{
int slen = strlen(s);
int plen = strlen(p);
if (plen > slen) return -1;
int nex = 0;
int i = 0;
int j = 0;
while (i < slen && j < plen)
{
... 阅读全帖
j*******r
发帖数: 52
12
试贴一个C++代码,循环+递归,用一个bitset代表当前字符是否已经在之前位置被使用。
1 #include
2 #include
3 #include
4
5 using namespace std;
6
7 void permutation(const char* str, bitset<4> used, string r){
8 if(r.size() == strlen(str)){
9 cout< 10 }
11 for(int i = 0; i < strlen(str); ++i){
12 if(used[i])
13 continue;
14 used.set(i);
15 r += str[i];
16 permutation(str, used, r);
17... 阅读全帖
j*******r
发帖数: 52
13
试贴一个C++代码,循环+递归,用一个bitset代表当前字符是否已经在之前位置被使用。
1 #include
2 #include
3 #include
4
5 using namespace std;
6
7 void permutation(const char* str, bitset<4> used, string r){
8 if(r.size() == strlen(str)){
9 cout< 10 }
11 for(int i = 0; i < strlen(str); ++i){
12 if(used[i])
13 continue;
14 used.set(i);
15 r += str[i];
16 permutation(str, used, r);
17... 阅读全帖
s**********e
发帖数: 326
14
我来贴个general的code
void diagnalPattern(char* str, int rowNum){
int charNum = 0;
for(int i = 0; i < strlen(str); i++){
if(isValidChar(str[i])){
charNum++;
}
}
int colNum = (charNum + rowNum - 1) / rowNum;
char** arr;
arr = new char*[rowNum];
for(int i = 0; i < rowNum; i++)
arr[i] = new char[colNum];
for(int i = 0 ; i < rowNum; i++)
for(int j = 0; j < colNum; j++)
arr[i][j] = ' ';
int curPos = 0;
... 阅读全帖
t*****n
发帖数: 25
15
来自主题: JobHunting版 - 问个google面试题的最佳解法
bool
minWindowOrder(const char *S, const char *T,
int &minWindowBegin, int &minWindowEnd)
{
int sLen = strlen(S);
int tLen = strlen(T);
int minWindowLen = INT_MAX;
for (int i = 0; i <= sLen - tLen; i++) {
if (S[i] == T[0]) {
//greed now
int k = i;
int j = 1;
k ++;
while (k < sLen && j < tLen) {
if (S[k] == T[j]) {
j ++;
}
k ++;
}
if (j == tLen) {
int windowLen = j - i - 1;
if (windowLen < minWindowLen) {
... 阅读全帖
j*******g
发帖数: 4
16
来自主题: JobHunting版 - atoi很不好写,头都大了...
见过很多次这个题目了,一直没有招,下面写了一个又臭又长的, 方法很笨, 求建议
, 欢迎批评和指正
这样的代码面试可以通过吗?
////////////////////////////////////////////////////////////////
#include
#include
using namespace std;
//假设16位的整型
// -32768 , +32767
const char MAX_INT[] = "32767";
const char MIN_INT[] = "32768";
const int MAX_STRLEN = 5;
bool my_atoi(const char *str, int &res)
{
if(str == NULL)
{
cout << "Invalid pointer" << endl;
return false;
}

int index = 0;

if(str[index] == '-' || s... 阅读全帖
j*******g
发帖数: 4
17
来自主题: JobHunting版 - 弱弱的问一个问题
见过很多次这个题目了,一直没有招,下面写了一个又臭又长的, 方法很笨, 求建议
, 欢迎批评和指正
这样的代码面试可以通过吗?
////////////////////////////////////////////////////////////////
#include
#include
using namespace std;
//假设16位的整型
// -32768 , +32767
const char MAX_INT[] = "32767";
const char MIN_INT[] = "32768";
const int MAX_STRLEN = 5;
bool my_atoi(const char *str, int &res)
{
if(str == NULL)
{
cout << "Invalid pointer" << endl;
return false;
}

int index = 0;

if(str[index] == '-' ||... 阅读全帖
w****x
发帖数: 2483
18
DP解法:
dpRec[strlen(str)]
dpRec[i]: if true, previous character can split to words
for (int i = 0; i < strLen; i++)
for (int j = i; j >=0 && !dpRec[i]; j--)
dpRec[i] = true if dpRec[j] && isWord(str[j..i])
时间复杂度O(n^2)
s*******f
发帖数: 1114
19
来自主题: JobHunting版 - 问一个Facebook大数相乘的题
//码遍本版
//i cannot get this should-be-right version within 15 minutes
//use reversed storage. say 1345 store as "5431"
char* MultiplyString(char *a,char *b){
if (!a || !b)
return NULL;
int la = strlen(a);
int lb = strlen(b);
int lc = la + lb + 1;
char *ret = new char[lc];
char *r = ret;
memset(ret, '\0', lc);
while (*a){
char *p = b;
char *q = r++;
int inc = 0;
int mul = *a - '0';
while (*p){
int qq = *q?... 阅读全帖
r****k
发帖数: 21
20
来自主题: JobHunting版 - 昨天的F家店面
#define MAX_BUFFER_SIZE 4096
extern char *read4096();
char buffer[MAX_BUFFER_SIZE+1];
char *readline()
{
static int EOF = 0;
static int currentPos = MAX_BUFFER_SIZE;

char *s = NULL;
int i, ssz = 0;

for(;;)
{
if (!EOF)
{
// buffer is not empty, check buffer
if (currentPos != MAX_BUFFER_SIZE)
{
for ( i = currentPos; i < MAX_BUFFER_SIZE; i++)
if (buffer[i] = '\0' || buffer[i] = '... 阅读全帖
s******n
发帖数: 3946
21
来自主题: JobHunting版 - 说好得FG面经,回馈板上GGJJ
递归非DP做法
bool isScramble(char* str1, char* str2, int length) {
if (length==1) return *str1 == *str2;
for (int i=1; i if (isScramble(str1, str2+(length-i), i)
&& isScramble(str1+i, str2, length-i))
return true;
if (isScramble(str1, str2, i)
&& isScramble(str1+i, str2+i, length-i))
return true;
}
return false;
}
递归DP做法
class Solution {
char* str1;
char* str2;
int m;
int m2;
int m3;
int* DP;
#define dp(i,j,k) DP[m2 * (i) + m * (j) + (k) ]
public:
Solution(cha... 阅读全帖
s*******f
发帖数: 1114
22
来自主题: JobHunting版 - 问个anagram的算法题
This is O(n). Hard to explain, but i think it deserve to go through it with
your test case.
//zzzz码遍本版,回报本版zzzz
//在一个大串中查找和另外一个字符串是anagram的子串:
//GetAnagram("abcdbcsdaqdbahs", "scdcb") ==> "cdbcs"
string GetAnagram(const char *s, const char *sub){
int ls = strlen(s);
int lsub = strlen(sub);
if (ls < lsub || lsub < 1)
return "";
int mp[256];
memset(mp, 0, 256 * sizeof(int));
while (*sub){
++mp[*sub++];
}
const char *p = s;
int count = 0;
whil... 阅读全帖
s*******f
发帖数: 1114
23
来自主题: JobHunting版 - 攒个人品,发个google电话面试题
//回报本版,码遍本版
//Given a string of sorted integers, e.g. "1 52 69 456789 994546566";
//and a a number e.g. 69.
//You need to tell if it is in the input, e.g. 69=>true.
//strlen is O(n), don't use C style string for O(log n), suppose
//the string is friendly without lots of blank.
void GetWordPos(const char *mid, const char *left, const char *right, const
char **pstart, const char **pend){
while (isspace(*mid))
++mid;
*pstart = mid;
while (*pstart >= left && !isspace(**pstart))
... 阅读全帖
s******k
发帖数: 3716
24
来自主题: JobHunting版 - 被thank you的fb电面面经
手快不需要5分钟
int getNumDecode(const char *str)
{
char temp[3]; temp[1] = temp[2] = '\0';
if(strlen(str) == 0) return 1;
int num = 0;
temp[0] = str[0];
if(mymap[temp)>0) // we have 1 digit decode a letter
num += getNumDecode(str+1);
if(strlen(str)==1) return num;
temp[1] = str[1];
if(mymap[temp]>0) // we have 2 digits decode a letter
num += str+2;
return num;
}
f**********t
发帖数: 1001
25
来自主题: JobHunting版 - 问一个memory allocate/release的问题
I have this string s1 = "My name is X Y Z" and I want to reverse the order
of the words so that s1 = "Z Y X is name My".
我写出了算法,结果正确,但是最后一步memory release时出错:
int ReverseWords (char *str) {
if (!str || str == "")
return 0;
char *newstr = new char[strlen(str)];
int i = strlen(str) - 1;
int start, end, k = 0;
while (i >= 0) {
start = end = i;
while (start >= 0 && str[start] != ' ')
--start;
for (int j = start+1; j <= end; ++j)
... 阅读全帖
f**********t
发帖数: 1001
26
来自主题: JobHunting版 - 问一个memory allocate/release的问题
嗯,发现了。
因为strlen(str)没有算'\0',比如strlen("abc") = 3.
这样的话newstr的长度就比str少1,而不是相等。
i**********e
发帖数: 1145
27
你可以看看我这个是不是跟你一样的啊?
为什么large case 里错了两三个(除掉最后一个 TLE 的case 之外)?
bool isMatch(const char *s, const char *p) {
int n=strlen(s);
int m=strlen(p);
bool dp[2][n+1];
for (int i = 0; i < 1; i++) {
for (int j = 0; j < n+1; j++)
dp[i][j] = false;
}
dp[m%2][n]=true;
for(int i=m-1;i>=0;i--)
{
for (int j=0;j dp[i%2][j] = false;
}
dp[i%2][n]=(p[i]=='*' && dp... 阅读全帖
w****x
发帖数: 2483
28
来自主题: JobHunting版 - 几道F家面试题
//serialize, deserialize vector
int serialize(vector& vec, char* str)
{
if (str == NULL)
return 0;
char* pWriter = str;
*((int*)pWriter) = vec.size();
pWriter += sizeof(int);
for (int i = 0; i < vec.size(); i++)
{
strcpy(pWriter, vec[i].c_str());
pWriter += 1 + strlen(pWriter);
}
return pWriter - str;
}
void deserialize(char* str, vector& vec)
{
if (NULL == str)
return;
int nSize = *((int*)str);
c... 阅读全帖
f*********m
发帖数: 726
29
来自主题: JobHunting版 - 几道F家面试题
serialize是没事先给pWriter 分配内存,恐怕会有问题吧。
pReader += strlen(pReader) + 1;
这句的意思是不是说serialize的时候每个string之间是由'\0'隔开的,所以 strlen(
pReader)每次只读一个string的长度?
k****r
发帖数: 807
30
来自主题: JobHunting版 - 一道字符串题目
目测的话,我想用recursive+backtrack
分情况的, 我简单写了下,请指正
bool matchwords(char* word1, char* word2, int index1, int index2) {
if (index1 == strlen(word1)&& index2 == strlen(word2)) return true;
else {
if (word2[index2] == '*') {
if (matchwords(word1, word2, index1+1, index2+1)) return true;
else if (matchwords(word1, word2, index1+1, index2)) return true;
else if (word2[index2] == '?') {
return matchwords(word1, word2, index1+1, index2+1);
else {
... 阅读全帖
b***m
发帖数: 5987
31
来自主题: JobHunting版 - 一道题
随便写了一下,请大家指正:
int EditDistance(char *s1, char *s2)
{
if( !s1 || !*s1 ) return strlen(s2);
if( !s2 || !*s2 ) return strlen(s1);

return min3(
EditDistance(s1 + 1, s2) + 1,
EditDistance(s1, s2 + 1) + 1,
EditDistance(s1 + 1, s2 + 1) + (*s1 == *s2 ? 0 : 1)
);
}
w****x
发帖数: 2483
32
来自主题: JobHunting版 - 发一个刚面的startup面经
直接贴Google doc了
Given a word, print out all the combinations of words from the letters that
make it. For example:
bad: abd adb bda dab dba
void _inner_print(char str[], int len, int pos)
{
if (pos == len)
{
cout< return;
}
for (int i = pos; i < len; i++)
{
swap(str[pos], str[i]);
_inner_print(str, len, pos+1);
swap(str[pos], str[i]);
}
}
Input: bad
step 1: 3, i = 0 - bad
step 2.: 3, i = 1 - abd
step 2.: 3, i = 2 - dabchar
void... 阅读全帖
s*****n
发帖数: 994
33
来自主题: JobHunting版 - leetcode regular expression match的问题
多谢各位,刚才把regular expression match理解为wildcard matching了,
那就顺便把wildcard matching的code给贴上来吧
class Solution {
public:
bool isMatch(const char *s, const char *p) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int m=strlen(s);
int n=strlen(p);
bool dp[1000][1000] = {false};//dp[i][j] means last i chars in s
matches last j chars in p
dp[0][0] = true;
for (int i=1; i<=n; ++i){
dp[0][i] = dp[0][i-1]... 阅读全帖
r*c
发帖数: 167
34
O(N), in place.
void CompressString(char *pRunner, const int len)
{
if(pRunner == NULL || strlen(pRunner) < len ||strlen(pRunner) == 1)
return;

char *pRunnerOrig = pRunner;
char *pKeeper = pRunner; //keeps the last char admitted to the resulting
string, so always increment it before writing back
int nCount = 0;
while(*pRunner != '\0')
{
if(*pRunner != *pKeeper)
{
pKeeper++;
if(pKeeper != pRunner)
*pKeeper = *... 阅读全帖
p*****3
发帖数: 488
35
来自主题: JobHunting版 - 贡献个regular expression DP解法
//DP矩阵中如果遇到.*或.+, 那么DP[i][j] == DP[i][j+1] = true/false
const int M = 100;
bool isMatchDP(const char* str, const char* pattern)
{
if (NULL == str || NULL == pattern)
return false;
int len1 = strlen(str);
int len2 = strlen(pattern);
bool DP[M][M] = { false }; //DP[len1+1][len2+1]
DP[0][0] = true;
for (int i = 1; i <= len2; )
{
if (pattern[i] == '*')
{
DP[0][i] = DP[0][i-1];
DP[0][i+1] = DP[0][i];
i += 2;
... 阅读全帖
k*j
发帖数: 153
36
来自主题: JobHunting版 - 贡献个regular expression DP解法
贴一个从后往前的DPcode。与lz的解法大同小异
class Solution {
public:
bool isMatch(const char *s, const char *p) {
// Start typing your C/C++ solution below
// DO NOT write int main() function

int len1 = strlen(s);
int len2 = strlen(p);
int i,j;
vector > result(len1+1,vector (len2+1,0));
result[len1][len2] = 1;
for(j = len2-1;j>=0;j--){
if(*(p+j+1)=='*'){
result[len1][j] = result[len1][j+2];
... 阅读全帖
J****3
发帖数: 427
37
来自主题: JobHunting版 - 求帮忙看看哪里有问题!
Strstr() using Robin-Karp alg
large case 会有6个过不了。。求大牛帮我看下哪里有问题。
const int base = 26, mod = 997;

char *strStr(char *haystack, char *needle) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int l_h = strlen(haystack);
int l_n = strlen(needle);
if(l_n > l_h) return NULL;

int h_hash = 0, n_hash = 0;
for(int i = 0; i < l_n; i++){
n_hash = (n_hash*base + needle[i])%mod;
... 阅读全帖
r*c
发帖数: 167
38
来自主题: JobHunting版 - 新鲜电面
RK肯定好写些,尽管它比KMP要慢不少。
前些天看到一个帖子,把RK的实现搞得特麻烦。下面贴个改进的,其中hash function
可替换,只要把各个char的信息都用到就好了。
class RobinKarpSolution
{
public:
char *strStr(char *haystack, char *needle) {
int nHSLen = strlen(haystack), nNDLen = strlen(needle);
if(nNDLen > nHSLen) return NULL;
int h_hash, n_hash = hashAString(needle, nNDLen, 0);
for(int i = 0; i <= nHSLen-nNDLen; ++i){
h_hash = hashAString(haystack, nNDLen, i);
if(n_hash == h_hash) {
if(!C... 阅读全帖
s*******s
发帖数: 1031
39
我的C++代码:
class Solution {
public:
bool isMatch(const char *s, const char *p) {
int ptnCnt = 0;
const char *pp = p;
while(pp && (*pp)) {
if(*pp != '*')
++ptnCnt;
++pp;
}

int strCnt = 0;
if(s)
strCnt = strlen(s);

if(strCnt < ptnCnt)
return false;

if(!strCnt)
return !ptnCnt;
if(!ptnCnt)
return strlen(p);

... 阅读全帖
l*********o
发帖数: 3091
40
来自主题: JobHunting版 - 问下LeetCode上的题目:count and say
#include
#include
int convert(char* src, char* dst)
{
*dst = 0;
int pos;
char str[64];
while(*src)
{
if(*src < '0' || *src > '9') return 1;
pos = 1;
while(*src==*(src+pos))pos++;
sprintf(str, "%d", pos);
strcat(dst, str);
dst += strlen(str);
sprintf(str, "%c", *src);
strcat(dst, str);
dst += strlen(str);
src += pos;
}
return 0;
}
int main()
{
int n = 29;
int... 阅读全帖
b*******m
发帖数: 10
41
来自主题: JobHunting版 - wildcard matching 大case runtime error
如下代码,大case 会runtime error 这是什么原因?
哪个大牛帮忙看下
bool isMatch(const char *s, const char *p) {
int lens = strlen(s);
int lenp = strlen(p);
vector> dp(lens+1, vector(false, lenp+1));
dp[lens][lenp] = true;
for (int i = lenp-1; i >= 0; i--) {
if (p[i] == '*' && dp[lens][i+1]) {
dp[lens][i] = true;
} else {
break;
//dp[len][i] = false;
}
}
for (... 阅读全帖
l****1
发帖数: 33
42
来自主题: JobHunting版 - 一道G家电面题
假设字典有N个单词,求最大的: product = strlen(word1) * strlen(word2),
并且满足word1和word2没有common letter.
A*****e
发帖数: 26
43
two c++ positions
1. interviewer: one Korean guy
C++ basics: public, private, struct, etc. 秒掉
C++ : the member functions of map,list, vector, how to resize vector, how
to delete the middle element in a given list, time complexity。 Nothing
difficult for me. list in stl is actually doubly linked list, so remove one
member would take O(1) time, but the reviewer seemed to disagree. Ask is
there a size member available for list in STL. A: i think so. I: er..ok (
seems he did not know that)
Programm... 阅读全帖
l****u
发帖数: 1764
44
来自主题: JobHunting版 - 放c code求老师傅指教
如果是我就会这么写:
void translate(char *str)
{
// edge case
if (str == NULL || strlen(str) < 2)
return;
// replace 'AB' to 'C0'
int len = strlen(str);
for (int i = 0; i if (str[i] == 'A' && str[i+1] == 'B') {
str[i] = 'C';
str[i+1] = 0;
}
}
// remove all '0'
int i = 0, j = 0;
while (j < len) {
if (str[j] == ... 阅读全帖
l*****8
发帖数: 16949
45
下面这个hello world的20天能学会吗?
[
uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
]
library LHello
{
// bring in the master library
importlib("actimp.tlb");
importlib("actexp.tlb");
// bring in my interfaces
#include "pshlo.idl"
[
uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
]
cotype THello
{
interface IHello;
interface IPersistFile;
};
};
[
exe,
uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
]
module CHelloLib
{
// some code related header files
importheader();
importheader();
importheader(阅读全帖
x****o
发帖数: 21566
46
【 以下文字转载自 Linux 讨论区 】
发信人: wjk302 (akui), 信区: Linux
标 题: 大家能帮我看一下下面的问题吗,不胜感激。
发信站: BBS 未名空间站 (Wed Feb 1 22:05:13 2012, 美东)
很冒昧的打扰大家。大家能帮我看一下下面的问题吗,不胜感激。
问题是这样的,在生产环境下
1、Suse的Linux有 /nfsmnt/work_pub/web 文件夹和 /nfsmnt/work_inwork/web
文件夹 ,它们都是NFS文件挂载
2、机器上有多个进程会读写/nfsmnt/work_pub/web 文件夹的内容
3、cron会周期性的 删除/nfsmnt/work_pub/web 文件夹下所有文件,并把/nfsmnt/
work_inwork/web 文件夹下的所有内容拷贝到前面那个文件夹中
这样,完全删除/nfsmnt/work_pub/web 文件夹下所有文件的时候就会有.nfs文件删除
不掉(上面的流程因为某些问题不方便改动)。
想咨询的问题是:我现在能不能修改一下fs/nfs/dir.c ... 阅读全帖
x****o
发帖数: 21566
47
来自主题: Joke版 - 发30个gogopanda包
strlen(daemonself) > stren(gogopanda) > strlen(stlstl)
b****n
发帖数: 84
48
来自主题: BuildingWeb版 - [转载] how to send cookie by CHttpFile?
【 以下文字转载自 Programming 讨论区 】
【 原文由 besson 所发表 】
在MFC中,
我定义了一个类指针 CHttpFile* pFile
然后想用它来发送一个TCP packet
pFile->SendRequest(szHeaders, strlen(szHeaders), strData, strlen(str));
其中szHeaders是
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*
Referer: **********************
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows
a*p
发帖数: 62
49
来自主题: Database版 - how to query chinese in mysql?
没人回答我,赫赫,我自己想了个笨办法:
因为我用的PHP也不支持unicode,我就:
数据库出来的数据再用unicode_like_compare做过滤,应该可以在很大程度上解决问题。
这个应该还是暂时方案吧,等mysql的unicode support吧。
function to_unicode_like($str) {
$r = "";
for ($i=0;$i $ch = substr($str,$i,1);
if (ord($ch) < 127) $r .= " $ch";
else {
if ($i == strlen($str)-1) $r .= $ch;
else {
$r .= substr($str,$i,2);
w****2
发帖数: 2
50
很冒昧的打扰大家。大家能帮我看一下下面的问题吗,不胜感激。
问题是这样的,在生产环境下
1、Suse的Linux有 /nfsmnt/work_pub/web 文件夹和 /nfsmnt/work_inwork/web
文件夹 ,它们都是NFS文件挂载
2、机器上有多个进程会读写/nfsmnt/work_pub/web 文件夹的内容
3、cron会周期性的 删除/nfsmnt/work_pub/web 文件夹下所有文件,并把/nfsmnt/
work_inwork/web 文件夹下的所有内容拷贝到前面那个文件夹中
这样,完全删除/nfsmnt/work_pub/web 文件夹下所有文件的时候就会有.nfs文件删除
不掉(上面的流程因为某些问题不方便改动)。
想咨询的问题是:我现在能不能修改一下fs/nfs/dir.c 中 nfs_sillyrename这个方法
,把所有.nfs文件生成到/nfsmnt/temp目录下,然后重新编译内核解决上面的问题?期
待大家的指点,先谢谢了。
下面是源代码
static int nfs_sillyrename(struct in... 阅读全帖
首页 1 2 3 4 5 末页 (共6页)