日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

华为电脑c语言总是错误,关于华为机试题求代码!解决方法

發布時間:2025/3/12 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 华为电脑c语言总是错误,关于华为机试题求代码!解决方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于華為機試題求代碼!!!

n個字符串,1

如n=3

1.what?is?local?bus?

2.this?is?local?bus。

3.local?bus?is?name?sdhfj。

那么最長的共同子串是local?bus

函數為char?*?findchar(const?char**asd,const?int?n)

大體就是這些,用c去實現!!

大牛們?給力啊!!

------解決方案--------------------

這樣:先比較兩個字符串,?找出所有互不包含的公共子串。

然后這堆子串再與第三個字符串相比,找出新的公共字串,,,

最后選出最長的那個。

------解決方案--------------------

先兩個字符串找?公共子串?。

然后拿公共子串和下一個字符串找?公共子串

往復循環,最后剩下的?公共子串?中找最長的?子串?返回。

最后沒有剩下公共子串則返回NULL。

個人想法,估計這個貼會火,來頂一個..

------解決方案--------------------

1、計算出?n?個字符串中最短的字符串a?的長度l,?pos=0,len=l/2,?n=1

2、從字符串a?的pos?位置取長度len?個字節

3、判斷步驟2中的字節是否在其他n-1個字符串中

4、是,判斷l/2^n是否為0,是,結束;否,len+=l/2^n,n++,回步驟2

5、否,判斷pos>l-len,是,len-=l/2^n,n++,pos=0,回步驟2;否,pos++,回步驟2

6、從字符串a?的pos?位置取長度len?個字節作為返回值

------解決方案--------------------

既然每個字符串都包含最長子字符串

1\選擇?第1個和第2個字符串得到?最長子字符串a

2\選擇?第3個和第4個字符串得到?最長子字符串b

3\從a?b中得到最大子字符串c

4\選擇?第5個和第6個字符串得到?最長子字符串d

5\選擇?第7個和第8個字符串得到?最長子字符串e

6\從d?e中得到最大子字符串f

從c?f中得到子字符串。。。。g

。。。。。。。。。。。。。。。。。。。。。

------解決方案--------------------

引用:引用:

先兩個字符串找?公共子串?。

然后拿公共子串和下一個字符串找?公共子串

往復循環,最后剩下的?公共子串?中找最長的?子串?返回。

最后沒有剩下公共子串則返回NULL。

個人想法,估計這個貼會火,來頂一個..

頂,只要寫出針對兩個串求最長公共串的代碼,剩下就是循環的問題了,當然,可能有出現有多個一樣長的公共串的情況,處理應該也不太復雜。

如果是下面的情況,8樓的思路就會出問題

str1="main?is?a?local?bus"

str2="main?not?a?local?bus"

str3="main"

第一個和第二個比較會結果就是"a?local?bus",如果拿這個和第三個比較,結果就完全不同了。

所以比較來看應該是n個字符串同時進行比較。不能兩兩比較后,再和其他進行比較。

------解決方案--------------------

手上只有一個Python版的,LZ自己改成C++吧

values?=?[1,-2,3,10,-4,7,2,-5]

def?getMaxSum(values):

maxSum?=?0

sum?=?0

maxNegativeNum?=?values[0]

if?not?values:

return?None

for?value?in?values:

sum?=?sum?+?value

if?maxNegativeNum?

maxNegativeNum?=?value

if?sum?

sum?=?0

if?sum?>?maxSum:

maxSum?=?sum

if?sum?==?0:

return?maxNegativeNum

return?maxSum

------解決方案--------------------

#include?

#include?

using?namespace?std;

//將第一個字符串與最短的字符串交換

void?swap(string?*pStr,int?i)

{

string?temp;

temp?=?*pStr;

*pStr?=?*(pStr?+?i);

*(pStr?+?i)?=?temp;

}

int?main()

{

int?N?=?3;

//cout?<

//cin?>>?N;

//cout?<

string?*pStr;

pStr?=?new?string?[N];//記錄要查找的字符串

pStr[0]?=?"main?what?is?local?bus";

pStr[1]?=?"main?this?is?local?bus";

//pStr[2]?=?"local?bus?is?name?sdhfj";

pStr[2]??=?"main";

int?i,min;

int?maxLen?=?256;

//找出輸入的字符串中長度最小的串,并把最小串序號記在min中

for(i?=?0;?i?

//?cin?>>?*(pStr?+?i);

int?len?=?(*(pStr?+i)).length();//?*操作符與調用函數的.操作符優先級問題,.優先級高于*,所以必須加上()

if(len?

maxLen?=?len;

min?=?i;

}

}

swap(pStr,min);

/*

for(i?=?0;?i?

總結

以上是生活随笔為你收集整理的华为电脑c语言总是错误,关于华为机试题求代码!解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。