17校招真題題集(2)6-10

注:本系列題目全是按照通過率降序來排列的,基本保證題目難度遞增。

?

6、

題目名稱:Fibonacci數列

來源:網易

題目描述

Fibonacci數列是這樣定義的:
F[0] = 0
F[1] = 1
for each i ≥ 2: F[i] = F[i-1] + F[i-2]
因此,Fibonacci數列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...,在Fibonacci數列中的數我們稱為Fibonacci數。給你一個N,你想讓其變為一個Fibonacci數,每一步你可以把當前數字X變為X-1或者X+1,現在給你一個數N求最少需要多少步可以變為Fibonacci數。

輸入描述:

輸入為一個正整數N(1 ≤ N ≤ 1,000,000)

輸出描述:

輸出一個最小的步數變為Fibonacci數"

示例1

輸入

15

輸出

2

分析:我們不斷生成斐波那契數列,生成到比輸入大了以后,比較這一個數和前一個數就好。

def ojbk(n):x=0y=1while 1:if y>n: return min(y-n, n-x)x,y=y,x+y
print(ojbk(input()))

7、

題目名稱:數字反轉

來源:網易

題目描述

對于一個整數X,定義操作rev(X)為將X按數位翻轉過來,并且去除掉前導0。例如:
如果 X = 123,則rev(X) = 321;
如果 X = 100,則rev(X) = 1.
現在給出整數x和y,要求rev(rev(x) + rev(y))為多少?

輸入描述:

輸入為一行,x、y(1 ≤ x、y ≤ 1000),以空格隔開。

輸出描述:

輸出rev(rev(x) + rev(y))的值

示例1

輸入

123 100

輸出

223

分析:直接按題意寫出來函數,模擬即可。

python字符串法:

L=(input("").split(' '))
a=L[0]
b=L[1]
def rev(x):q=int(x[::-1])return q
c=str(rev(a)+rev(b))
print(str(rev(c)))

簡化:

a = input().split()
print(str(int(a[0][::-1]) + int(a[1][::-1]))[::-1].lstrip("0"))

c++實現高效逆置:

#include<iostream>
using namespace std;
int rev(int m)
{int t=0;while(m>0){t=t*10+m%10;m=m/10;}return t;
}int main()
{
int x,y;while(cin>>x>>y){cout<<rev(rev(x) + rev(y))<<endl;}return 0;
}

?

8、

題目名稱:下廚房

來源:網易

題目描述

牛牛想嘗試一些新的料理,每個料理需要一些不同的材料,問完成所有的料理需要準備多少種不同的材料。

輸入描述:

每個輸入包含 1 個測試用例。每個測試用例的第 i 行,表示完成第 i 件料理需要哪些材料,各個材料用空格隔開,輸入只包含大寫英文字母和空格,輸入文件不超過 50 行,每一行不超過 50 個字符。

輸出描述:

輸出一行一個數字表示完成所有料理需要多少種不同的材料。

示例1

輸入

BUTTER FLOUR
HONEY FLOUR EGG

輸出

4

分析:就是沒有出現過的就放到一個容器里,高效查找。

python:

ll=[]//存東西
while 1:try:l=(input().split())for i in range(len(l)):if l[i] in ll://沒有就放進去continueelse:ll.append(l[i])except:print(len(ll))break

c++ set:

#include <iostream>
#include <set>
#include <string>
using namespace std;
int main() {string str;set<string> datas;while (cin >> str) {datas.insert(str);}cout << datas.size() << endl;return 0;
}

?

9、

題目名稱:n個數里出現次數大于等于n/2的數

來源:好未來

題目描述

輸入n個整數,輸出出現次數大于等于數組長度一半的數。

輸入描述:

每個測試輸入包含 n個空格分割的n個整數,n不超過100,其中有一個整數出現次數大于等于n/2。

輸出描述:

輸出出現次數大于等于n/2的數。

示例1

輸入

3 9 3 2 5 6 7 3 2 3 3 3

輸出

3

分析:你就算暴力也是可以的

l=(input().split())
for i in l://遍歷每一個數a=0for j in l://查找if i==j:a+=1if a>len(l)/2-1:print(i)break

當然,動態規劃思想會很高效,我這里放一個鏈接,第一題就是

https://blog.csdn.net/hebtu666/article/details/81390118感興趣的看一看

?

10、

題目名稱:小易喜歡的單詞

來源:網易

題目描述

小易喜歡的單詞具有以下特性:
1.單詞每個字母都是大寫字母
2.單詞沒有連續相等的字母
3.單詞沒有形如“xyxy”(這里的x,y指的都是字母,并且可以相同)這樣的子序列,子序列可能不連續。
例如:
小易不喜歡"ABBA",因為這里有兩個連續的'B'
小易不喜歡"THETXH",因為這里包含子序列"THTH"
小易不喜歡"ABACADA",因為這里包含子序列"AAAA"
小易喜歡"A","ABA"和"ABCBA"這些單詞
給你一個單詞,你要回答小易是否會喜歡這個單詞(只要不是不喜歡,就是喜歡)。

輸入描述:

輸入為一個字符串,都由大寫字母組成,長度小于100

輸出描述:

如果小易喜歡輸出"Likes",不喜歡輸出"Dislikes"

示例1

輸入

AAA

輸出

Dislikes

?

分析:題意i容易理解,操作挺麻煩的,根據題意實現功能就好。

看代碼注釋

a=input()
q=0
v=0
for i in a://遍歷判斷條件if i.islower():print("Dislikes")q=1//后面就不會執行了break
for j in range(len(a)-1)://遍歷判斷條件if q==1:breakelif a[j]==a[j+1]:print("Dislikes")q=1//后面就不會執行了
for z in range(len(a)-3)://遍歷判斷條件if q==1:breakfor x in range(1,len(a)):if a[z]==a[x]://找到相同的for g in range(z+1,x)://相同的之間for h in range(x+1,len(a))://之后if a[h]==a[g]://相同,也就是ABAB型print("Dislikes")v=1breakif v==1:break
if q==0://執行到這里就是likeprint("Likes")

找來的c++,不是我寫的:

#include "stdio.h"
#include "string.h"int FindDislike(char *s,int length);
int FindForward(char *s,int x,int y,int length);int main(){char s[101];int like=1;scanf("%s",s);int len=strlen(s);   //先完成有沒有連續的數for(int i=0;i<len-1;i++){if(len<2){like=1;}else if(s[i]==s[i+1]){like=0;break;}}///if(like==1 && len>1)like=FindDislike(s,len);if(like==1)printf("Likes",s);elseprintf("Dislikes");return 0;
}int FindDislike(char *s,int length){int like=1;for(int i=0;i<length;i++){for(int j=1;j<length;j++){if(s[i]==s[j]) {like=FindForward(s,i,j,length);if(like==0){ return 0;}}      }}return 1;       
}int FindForward(char *s,int x,int y,int length){if(y==length-1)return 1;for(int i=x+1;i<y;i++){for(int j=y+1;j<length;j++){if(s[i]==s[j])return 0;}}return 1;
}

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445592.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445592.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445592.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

QT5的數據庫

#include <QtSql> QT sql QSqlDatabase類實現了數據庫連接的操作 QSqlQuery類執行SQL語句 QSqlRecord類封裝數據庫所有記錄 QSqlDatabase類 [cpp] view plaincopy print?QSqlDatabase db QSqlDatabase::addDatabase("QOCI"); db.setHostName("localh…

數據結構課上筆記6

本節課介紹了單鏈表的操作實現細節&#xff0c;介紹了靜態鏈表。 鏈表帶頭的作用&#xff1a;對鏈表進行操作時&#xff0c;可以對空表、非空表的情況以及 對首元結點進行統一處理&#xff0c;編程更方便。 下面給出帶頭的單鏈表實現思路&#xff1a; 按下標查找&#xff1a; …

《Unity2018入門與實戰》筆記(9 / 9):個人總結

個人總結 腳本語言學習的竅門 盡可能多讀、多寫、多說腳本語言&#xff01; Link 游戲制作步驟 設計游戲時一般會遵循5個步驟&#xff1a; 羅列出畫面上所有的對象。確定游戲對象運行需要哪些控制器腳本。確定自動生成游戲對象需要哪些生成器腳本。準備好用于更新UI的調度…

17校招真題題集(3)11-15

注&#xff1a;本系列題目全是按照通過率降序來排列的&#xff0c;基本保證題目難度遞增。 11、 題目名稱&#xff1a;買蘋果 來源&#xff1a;網易 題目描述 小易去附近的商店買蘋果&#xff0c;奸詐的商販使用了捆綁交易&#xff0c;只提供6個每袋和8個每袋的包裝(包裝不…

Qt學習:QDomDocument

QDomDocument類代表了一個XML文件 QDomDocument類代表整個的XML文件。概念上講&#xff1a;它是文檔樹的根節點&#xff0c;并提供了文檔數據的基本訪問方法。由于元素、文本節點、注釋、指令執行等等不可能脫離一個文檔的上下文&#xff0c;所以文檔類也包含了需要用來創建這些…

《事實:用數據思考,避免情緒化決策》筆記

文章目錄一分為二負面思維直線思維恐懼本能規模錯覺以偏概全命中注定單一視角歸咎他人情急生亂一分為二 要做到實事求是&#xff0c; 就要做到當你聽到一分為二的說法時&#xff0c; 你就能迅速認識到這種說法描述的是一種兩極分化的圖畫&#xff0c; 而兩極之間存在一道巨大的…

順序存儲線性表實現

在計算機中用一組地址連續的存儲單元依次存儲線性表的各個數據元素,稱作線性表的順序存儲結構。 順序存儲結構的主要優點是節省存儲空間&#xff0c;因為分配給數據的存儲單元全用存放結點的數據&#xff08;不考慮c/c語言中數組需指定大小的情況&#xff09;&#xff0c;結點之…

QT5生成.exe文件時,出現缺少QT5core.dll文件解決方法

在 http://qt-project.org/downloads 下載Qt SDK安裝需要Qt版本。在QtCreator下&#xff0c;程序可以正常運行&#xff0c;但是當關閉QtCreator后&#xff0c;在DeBug目錄下再運行相應的*.exe程序時&#xff0c;會提示缺少Qt5Core.dll錯誤。解決方法&#xff1a;添加電腦環境變…

《基于Java實現的遺傳算法》筆記(7 / 7):個人總結

文章目錄為何采用遺傳算法哪些問題適合用遺傳算法解決遺傳算法基本術語一般遺傳算法的過程基本遺傳算法的偽代碼為何采用遺傳算法 遺傳算法是機器學習的子集。在實踐中&#xff0c;遺傳算法通常不是用來解決單一的、特定問題的最好算法。對任何一個問題&#xff0c;幾乎總有更…

單鏈表不帶頭標準c語言實現

鏈表是一種物理存儲單元上非連續、非順序的存儲結構&#xff0c;數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點&#xff08;鏈表中每一個元素稱為結點&#xff09;組成&#xff0c;結點可以在運行時動態生成。每個結點包括兩個部分&#xff1a;一個是…

Java設計模式(4 / 23):單例模式

文章目錄單例模式的應用場景餓漢式單例模式懶漢式單例模式改進&#xff1a;synchronized改進&#xff1a;雙重檢查鎖改進&#xff1a;靜態內部類破壞單例用反射破壞單例用序列化破壞單例解密注冊式單例模式枚舉式單例模式解密容器式單例線程單例實現ThreadLocal單例模式小結參考…

約瑟夫環-(數組、循環鏈表、數學)

約瑟夫環&#xff08;約瑟夫問題&#xff09;是一個數學的應用問題&#xff1a;已知n個人&#xff08;以編號1&#xff0c;2&#xff0c;3...n分別表示&#xff09;圍坐在一張圓桌周圍。從編號為k的人開始報數&#xff0c;數到m的那個人出列&#xff1b;他的下一個人又從1開始報…

Ubuntu麒麟下搭建FTP服務

一.怎么搭建FTP服務&#xff1a; 第一步>>更新庫 linuxidclinuxidc:~$ sudo apt-get update 第二步>>采用如下命令安裝VSFTPD的包 linuxidclinuxidc:~$ sudo apt-get install vsftpd 第三步>>安裝完成后打開 /etc/vsftpd.conf 文件&#xff0c;按如下所述…

《數據結構上機實驗(C語言實現)》筆記(1 / 12):緒論

文章目錄驗證性實驗求1~n的連續整數和說明放碼結果常見算法時間函數的增長趨勢分析說明放碼結果設計性實驗求素數個數說明放碼結果求連續整數階乘的和說明放碼結果驗證性實驗 求1~n的連續整數和 說明 對于給定的正整數n&#xff0c;求12…n12…n12…n&#xff0c;采用逐個累…

線性表實現一元多項式操作

數組存放&#xff1a; 不需要記錄冪&#xff0c;下標就是。 比如1&#xff0c;2&#xff0c;3&#xff0c;5表示12x3x^25x^3 有了思路&#xff0c;我們很容易定義結構 typedef struct node{float * coef;//系數數組int maxSize;//最大容量int order;//最高階數 }Polynomial…

ubuntu下解壓縮zip,tar,tar.gz和tar.bz2文件

在Linux下面如何去壓縮文件或者目錄呢&#xff1f; 在這里我們將學習zip, tar, tar.gz和tar.bz2等壓縮格式的基本用法。 首先了解下Linux里面常用的壓縮格式。 在我們探究這些用法之前&#xff0c;我想先跟大家分享一下使用不同壓縮格式的經驗。當然&#xff0c;我這里講到的只…

《數據結構上機實驗(C語言實現)》筆記(2 / 12):線性表

文章目錄驗證性實驗實現順序表各種基本運算的算法放碼sqlist.hsqlist.cppexp2-1.cpp結果實現單鏈表各種基本運算的算法放碼linklist.hlinklist.cppexp2-2.cpp結果實現雙鏈表各種基本運算的算法放碼dlinklist.hdlinklist.cppexp2-3.cpp結果實現循環單鏈表各種基本運算的算法放碼…

鏈表排序-歸并

鏈表排序&#xff0c;可以插入排序&#xff0c;我就不寫了。 實現歸并排序 歸并排序&#xff08;MERGE-SORT&#xff09;是建立在歸并操作上的一種有效的排序算法,該算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一個非常典型的應用。將已有序的子序列合并&…

ubuntu麒麟下安裝并啟用搜狗輸入法

1.首先打開UK軟件&#xff0c;輸入搜狗尋找搜狗拼音軟件 然后下載搜狗拼音軟件 接著點擊啟動該軟件 2.點擊搜狗拼音的圖標&#xff0c;進入搜狗拼音的設置窗口 點擊高級&#xff0c;并打開FCITX設置 加入英語輸入法 3.這樣就可以進行中英文切換了

線性表表示集合

集合我們高中都學過吧&#xff1f; 最重要的幾個特點&#xff1a;元素不能重復、各個元素之間沒有關系、沒有順序 集合內的元素可以是單元素或者是集合。 對集合的操作&#xff1a;交集并集差集等&#xff0c;還有對自身的加減等。 需要頻繁的加減元素&#xff0c;所以順序…