華為機試整理

2021-06-22 18:13:14 字數 3697 閱讀 8930

**:

#include "stdafx.h"  

#includeusing namespace std;

int main(int argc, _tchar* argv)

cout<2.大數相加

用stl的string比較方便,**如下,自己測了幾組資料沒有什麼問題。

#include "stdafx.h"

#include#includeusing namespace std;

int main(int argc, _tchar* argv)

} cout<

#include "stdafx.h"

#include#includeusing namespace std;

int main(int argc, _tchar* argv)

} cout<

比如字串「abacacde」過濾結果為「abcde」。

要求實現函式: 

void stringfilter(const char *pinputstr, long linputlen, char *poutputstr);

#include "stdafx.h"

#include#includeusing namespace std;

int main(int argc, _tchar* argv)

;void printlist(listnode* head)

coutdelete p;

p=q; }}

int main(int argc, _tchar* argv)

p->next=null;

//print original list

printlist(head);

//相鄰元素交換

p=head;

while(p->next!=null&&p->next->next!=null)

printlist(head);

deletelist(head);

return 0;

}

#include "stdafx.h"

#include#include#includeusing namespace std;

int main(int argc, _tchar* argv)

{ string s;

stackst;

cin>>s;

int len=s.length();

int flag=0;

for(int i=0;i

輸入乙個整數,如12336544,或1750,然後從最後一位開始倒過來輸出,最後如果是0,則不輸出,輸出的數字是不帶重複數字的,所以上面的輸出是456321和571。如果是負數,比如輸入-175,輸出-571。

#include "stdafx.h"

#include#include#includeusing namespace std;

//將整數倒序輸出,剔除重複資料

int main(int argc, _tchar* argv)

{ char s[100];

cin>>s;

int len=strlen(s);

reverse(s,s+len);

int i=0;

while(s[i]=='0'&&i

舉例:輸入:323324423343

輸出:3,6

#include "stdafx.h"

#include#includeusing namespace std;

/*27.統計數字出現的次數,最大次數的統計出來

舉例:輸入:323324423343

輸出:3,6

*/int main(int argc, _tchar* argv)

{ string s;

int hash[10];

cin>>s;

memset(hash,0,sizeof(hash));

int len=s.length();

int i=0;

while(i

題目描述

請編寫乙個main函式,它的功能是:將字串中的所有單詞的首字母改為大寫,字串中以空格分割各個單詞,其他字元不變。

輸入乙個字串。

輸出所有單詞的首字母改為大寫的字串。

樣例輸入

this is a dog.

樣例輸出

this is a dog.

#include "stdafx.h"

#include#includeusing namespace std;

/*28.字串首字母轉換成大寫

題目描述

請編寫乙個main函式,它的功能是:將字串中的所有單詞的首字母改為大寫,字串中以空格分割各個單詞,其他字元不變。

輸入乙個字串。

輸出所有單詞的首字母改為大寫的字串。

樣例輸入

this is a dog.

樣例輸出

this is a dog.

*/int main(int argc, _tchar* argv)

{ string s;

getline(cin,s);

bool isspace=true;

int len=s.length();

for(int i=0;i題目描述:   

通過鍵盤輸入任意乙個字串序列,字串可能包含多個子串,子串以空格分隔。請編寫一

個程式,自動分離出各個子串,並使用』,』將其分隔,並且在最後也補充乙個』,』並將子

串儲存。  

如果輸入「abc def gh i        d」,結果將是abc,def,gh,i,d, 

#include "stdafx.h"

#include#include#includeusing namespace std;

int main(int argc, _tchar* argv)

{ string s;

getline(cin,s);

vectorvs;

string temp;

int len=s.length();

bool isspace=true;

for(int i=0;i::iterator iter=vs.begin();iter!=vs.end();iter++)

cout<<*iter<<',';

cout《或者使用stringstream

#include "stdafx.h"

#include#include#include#includeusing namespace std;

int main(int argc, _tchar* argv)

{ string s;

getline(cin,s);

stringstream sstr(s);

vectorvs;

string temp;

while(sstr>>temp)

vs.push_back(temp);

for(vector::iterator iter=vs.begin();iter!=vs.end();iter++)

cout<<*iter<<',';

cout<

華為機試 2013

1.字串轉換 問題描述 將輸入的字串 字串僅包含小寫字母 a 到 z 按照如下規則,迴圈轉換後輸出 a b,b c,y z,z a 若輸入的字串連續出現兩個字母相同時,後乙個字母需要連續轉換2次。例如 aa 轉換為 bc,zz 轉換為 ab 當連續相同字母超過兩個時,第三個出現的字母按第一次出現算。...

華為機試3

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數 n 1000 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對應著不同的學生的學號。然後再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成 去重 與 排序...

華為機試 撿石子

昨天去華為機試,前兩道都比較簡單,最後一道是關於撿石子的問題,當時沒想到好的辦法解決,8個測試用例只過了6個,回來想了想,想到了一種能解決的方法。題目 有n n 2 個石子,甲乙兩個人從這些石子中輪流拿取m m 1 個石子,規定第乙個拿的人可以拿任意多個,但不能完全拿完,然後,後面的人最多可以拿取前...