1、判斷乙個字串是否是回文,例如「level」;
解析:根據題目要求,可以從單詞兩端進行遍歷比較。
(1)計算要比較的單詞字串長度,如level長度是5,則需要比較兩次。
(2)第一次比較,看第乙個和最後乙個字元是否相同,
(3)第二次比較,第二個符和倒數第二個字元比較是否相同。
**如下:
.cpp 檔案
#include
usingnamepace
std;
voidrecv(char
*str)
len=strlen(str);
for(inti=0; i
<
len/
2; i
++)
}
returnfound;
}
voidmain()
= ;
charstr2[7] = ;
inttest1
=recv(str1);
inttest2
=recv(str2);
cout<<
"str1 is"
<< ("test1 == 1 ? "
" : "
not"") <<
"reserve string ."
<<
endl;
cout<<
"str2 is"
<< ("test2 == 1 ? "
" : "
not"") <<
"reserve string ."
<<
endl;
reurn0;
}
2.程式設計實現strcmp 庫函式。
解析:此題實際考察對兩個字串str1和str2的比較,若相等則返回1,,否則返回0;
**如下:
#include
usingnamespace
std;
voidstrcmp0(char
*str1, char
*str2)
else
else
}
}
}
voidmain()
= ;
charstr2[7] = ;
inttest
=strcmp0(str1,str2);
cout<<
" "
<<
endl;
}
解析2:實際考察對兩個字串str1和str2的比較,若相等則返回:0,,str1大於str2,返回1,否則返回-1;
**如下:
#include
usingnamespace
std;
if(ret<
0)
elseif(ret
>
0)
return(ret);
}
intmain()
3、程式設計查詢兩個字串的最大公共字元子串
解析:考點,字串相關綜合程式設計能力
**如下:
#include
usingnamespace
std;
voidstrcmp0(char
*str1, char
*str2)
//判斷誰長誰短
if(strlen(str1) <=strlen(str2))
else
//如果在長字串中能找到短的字串,則直接返回短字串
if(strstr(longstr, shortstr) !=null)
//申請堆記憶體返回結果
substr= (char
*)malloc(sizeof(char) * (strlen(shortstr) +
1));
for(i=strlen(shortstr) -
1; i
>
0; i
--)
}
returnnull;
}
voidmain()
Google面試題(六)
題目 對現在的stack 棧 資料結構進行改進,加乙個min 功能,使之能在常數,即o 1 時間內給出棧中的最小值。可對push 和pop 函式進行修改,但要求其時間複雜度都只能是o 1 分析 要使pop,push,min都是o 1 所以肯定要犧牲點空間 思路 1 在stack的資料結構中加兩個個字...
iOS 面試題(六)
回答person的retaincount值,並解釋為什麼 person per person alloc init self.person per 1 或者2 看物件用什麼屬性修飾,person類物件在建立的時候引用計數加1,若用 assign類不會使引用計數加1的屬性修飾 person的retai...
面試題之六
什麼是tcp連線的三次握手?第一次握手 客戶端傳送syn包 syn j 到伺服器,並進入syn send狀態,等待伺服器確認 第二次握手 伺服器收到syn包,必須確認客戶的syn ack j 1 同時自己也傳送乙個syn包 syn k 即syn ack包,此時伺服器進入syn recv狀態 第三次握...