帝國國王科技大學上機題解(二)

1.找到字符串中出現次數最少的字符

?

題目描寫敘述

給定一個字符串(長度小于50

找到該字符串出現次數最少的字符

假設有兩個字符出現次數同樣,并且均出現最少。那么ASCII碼小的字符優先

?

輸入

輸入為一行字符串。不含空格

輸出

輸出出現次數最少的字符


例子輸入

rra3

333444abcd

例子輸出

3

a


解題思路:

先將字符串內部依據字符順序排序,然后遍歷一遍。記錄出現次數最小的(假設有多個次數最小的。選排序在最前的)。


代碼:

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;char a[105];int main()
{int len,i;while(cin>>a){len=strlen(a);sort(a,a+len);//cout<<a<<endl;int min=105;   //字符出現的最少次數賦初值char res;int p=1;for(i=len-2; i>=0; i--){if(a[i]==a[i+1])   //統計a[i+1]出現的次數p++;else{if(p<=min)     //更新出現次數最少的{min=p;res=a[i+1];}p=1;}}if(p<=min)     //推斷a[0]{min=p;res=a[0];}cout<<res<<endl;}
}/*
rra3
333444abcd
1112234
11223344
*/


2.歸并兩個已排序的數組(數組長度在1-20之間)。將其歸并成一個順序的數組

?

注意:在輸出時。最后一個數字后邊要打印一個空格

?

輸入

第一行給定測試用例的個數N。接下來兩行數據為一組,每行的第一個數是一個整數,表示的是該行數組的大小。

輸出

輸出每一個測試用例的結果。每行數據為一行。注意:在輸出時,最后一個數字后邊要打印一個空格

?

例子輸入

2

4?1?3?5?7

3?2?4?6

2?3?5

3?-1?2?3

例子輸出

1?2?3?4?5?6?7?

-1?2?3?3?5


解題思路:

用兩個指針遍歷兩個數組。每次輸出小的。


代碼:

#include<iostream>
using namespace std;int a[105];
int b[105];int main()
{int tes;int m,n;int i,j;while(cin>>tes){while(tes--){cin>>m;for(i=0; i<m; i++)cin>>a[i];cin>>n;for(i=0; i<n; i++)cin>>b[i];i=0,j=0;while(i<m&&j<n)  //兩個數組里面用指針選小的{if(a[i]<b[j]){cout<<a[i]<<" ";i++;}else{cout<<b[j]<<" ";j++;}}while(i<m)  //a數組還有剩余{cout<<a[i]<<" ";i++;}while(j<n)  //b數組還有剩余{cout<<b[j]<<" ";j++;}cout<<endl;}}return 0;
}/*
2
4 1 3 5 7
3 2 4 6
2 3 5
3 -1 2 3
*/



3.推斷二叉樹的先序遍歷序列

?

題目描寫敘述

一種線性表示二叉樹的方式是使用先序遍歷序列,假設遇到非空節點。我們記錄它的值,假設遇到空節點,我們用固定字符或者數字表示。比如用數字0表示

?

比如上邊這樣一顆二叉樹,其先序遍歷序列為“9?3?4?0?0?1?0 0 2?0?6?0?0”,當中0表示空節點。給出一個線性序列,推斷這個序列是否為一個二叉樹的先序遍歷序列。

序列中每一個非空節點的值均為非0整數,0表示空節點。節點之間用空格隔開,節點個數不超過20

?

輸入

輸入一行序列。序列中每一個數字表示一個節點的值,非空節點的值均為非0整數,0代表空節點,節點之間用空格隔開,節點個數不超過20個。

?

輸出

假設該序列是一個二叉樹的先序遍歷序列。輸出一行“True,否則輸出“False

?

例子輸入

9?3?4?0?0?1?0?0?2?0?6?0?0

1?0

9?0?0?1

例子輸出

True

False

False


解題思路:


首先一個二叉樹必須是葉子節點個數等于枝干節點數+1

即數組里面0的個數等于非0個數+1。假設不滿足。直接輸出False。

然后依照先序建立二叉樹的方法。記錄建立二叉樹總共用的節點。

假設

1)建立二叉樹使用的節點數index等于數組里數的個數n,

2)數組里面0的個數等于非0個數+1。

那么輸出True,否則輸出False。


代碼:

#include<iostream>
#include<cstring>
#define maxn 1005
using namespace std;char str[maxn];
int a[maxn];
int index;typedef struct node
{node *l;node *r;int val;
}*root;void createBiTree(root T)      //先序建立二叉樹
{if(a[index] == 0){T = NULL;index++;}else{T = new node;T->val = a[index++];createBiTree(T->l);createBiTree(T->r);}
}int main()
{int len,i,n;while(gets(str)){n=0;int tmp,flag;tmp=flag=0;len=strlen(str);int cnt=0;    //記錄葉子節點個數for(i=0; i<len; i++)   //將字符串處理成int數組保存在數組a中{if(str[i]=='-'){flag=1;}else if(str[i]==' '){if(flag)tmp=0-tmp;a[n]=tmp;if(a[n]==0)cnt++;n++;flag=0;tmp=0;}elsetmp=tmp*10+(str[i]-'0');}if(flag)tmp=0-tmp;a[n]=tmp;if(a[n]==0) cnt++;n++;if(cnt!=n-cnt+1)   //葉子節點必須等于枝干節點+1{cout<<"False"<<endl;continue;}index=0;root T;createBiTree(T);if(n==index)cout<<"True"<<endl;elsecout<<"False"<<endl;}return 0;
}/*
9 3 4 0 0 1 0 0 2 0 6 0 0
1 0
9 0 0 19 2 0 0 5 6 0 0 0
9 2 0 0 5 0 6 0 0
*/



4.最短路徑和

?

題目描寫敘述

輸出一個大小為M×N的方格,每一個方格填滿了非負整數。找到一條從左上角到右下角的路徑,使得路徑經過的全部方格內的值相加和最小

1?2?3

1?1?1

比如如上方格,從左上角開始先向下走,再向右走。得到的路徑和最短。最短為1+1+1+1=4

?

注意:在隨意時刻。你僅僅有向下移動或者向右移動。

?

輸入

輸入第一行為該方格的行數和列數。行數和列數不超過1000

接著輸入數字矩陣

輸出

輸出最短路徑和


例子輸出

2?3

1?2?3

1?1?1

1?1

3

例子輸出

4

3


解題思路:

在隨意時刻。你僅僅有向下移動或者向右移動。

不論什么一個狀態僅僅能從上方或者左方得到。

用二維數組a存儲該方格。用dp[i][j]表示到達第i行第j列這個數的最小值。

1)dp[1][j]僅僅能從左方得到。dp[1][j]=dp[1][j-1]+a[1][j];

2) dp[i][1]僅僅能從上方得到。dp[i][1]=dp[i-1][1]+a[i][1];

3) dp[i][j](i>1,j>1)能夠從左方和上方得到。狀態轉移方程為

dp[i][j] = min(dp[i-1][j] , dp[i][j-1]) +a[i][j]

最后輸出dp[m][n]即為結果


代碼:

#include<iostream>
#define maxn 1005
using namespace std;int a[maxn][maxn];
int dp[maxn][maxn];int mi(int p1,int p2)
{if(p1<p2) return p1;return p2;
}int main()
{int m,n;int i,j;while(cin>>m>>n){for(i=1; i<=m; i++)for(j=1; j<=n; j++)cin>>a[i][j];dp[0][1]=0;dp[1][0]=0;for(i=1; i<=m; i++)dp[i][1]=a[i][1]+dp[i-1][1];for(i=1; i<=n; i++)dp[1][i]=a[1][i]+dp[1][i-1];for(i=2; i<=m; i++){for(j=2; j<=n; j++){dp[i][j]=mi(dp[i-1][j],dp[i][j-1])+a[i][j];}}/*for(i=1;i<=m;i++){for(j=1;j<=n;j++){cout<<dp[i][j]<<" ";}cout<<endl;}*/cout<<dp[m][n]<<endl;}
}



5.找出一個缺失的正整數


描寫敘述

給定一個未排序的數組,找出一個缺失的正整數

比如

數組?1?2?0

有正整數12。缺失的第一個正整數是3

?

輸入

輸入為一個未排序的整數數組。數組長度不超過1000000

輸出

輸出為整數數組中第一個缺失的正整數

?

例子輸入

1?2?0

3?4?-1?1

例子輸出

3

2


解題思路:

把全部的正正整數都映射到map里面。

然后從最小的正整數1開始找,假設沒有被映射。便輸出。然后結束。


代碼:

#include<iostream>
#include<cstring>
#include<map>
using namespace std;char str[1005];
map <int,int> mq;int main()
{int len,i;while(gets(str)){mq.clear();int tmp,flag;tmp=flag=0;len=strlen(str);for(i=0; i<len; i++)   //將字符串處理成int數組保存在數組a中{if(str[i]=='-'){flag=1;}else if(str[i]==' '){if(!flag)    //負數不須要處理{mq[tmp]=1;}flag=0;tmp=0;}elsetmp=tmp*10+(str[i]-'0');}if(!flag)mq[tmp]=1;for(i=1;; i++){if(!mq[i]){cout<<i<<endl;break;}}}return 0;
}



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

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

相關文章

如何在計算機上閱讀漫畫書

Reading and organizing a comic book collection on your computer is efficient and a lot of fun. Today we will look at a couple of free applications that allow you to read your favorite comic books on your computer. 在計算機上閱讀和組織漫畫集非常有效&#xf…

C# WinForm 自啟動/模擬開機自動啟動

遇到重寫啟動步驟&#xff0c;C#調試時顯得比較折騰&#xff0c;既要等待重啟&#xff0c;又要保存當前文件。 讓程序自動重啟模擬這樣電腦重啟步驟&#xff0c;顯得非常方便。在http://bbs.csdn.net/topics/100187453找到下面代碼&#xff0c;直接使用。 ProcessStartInfo p…

工業互聯網平臺實現路徑

我國工業互聯網平臺建設雖然仍處于產業培育期&#xff0c;但是工業互聯網平臺也得到了初期的快速發展&#xff0c;得益于平臺企業的積極投入和各地工業和信息化主管部門的大力推動&#xff0c;從平臺建設推廣的經驗來看&#xff0c;下面談一下個人認為傳統制造企業平臺戰略比較…

Javascript基礎之-Promise

轉載自: http://www.lht.ren/article/3/ Promise是什么呢&#xff1f;根據ecma-262的定義&#xff1a; Promise是一個被用于延時計算的最終結果的占位符 &#xff08;A Promise is an object that is used as a placeholder for the eventual results of a deferred (and possi…

linux進階命令2

linux進階命令2 壓縮1.壓縮的概念1&#xff09;壓縮的目的&#xff1a; 在網絡傳遞文件時&#xff0c;可以先將文件壓縮&#xff0c;然后傳遞壓縮后的文件&#xff0c;從而減少網絡帶寬。 接受者接受文件后&#xff0c;解壓即可。2&#xff09;壓縮的類型 有損壓縮、無損壓縮。…

PHP經常使用正則表達式匯總

1. 平時做站點常常要用正則表達式&#xff0c;以下是一些解說和樣例&#xff0c;僅供大家參考和改動使用&#xff1a; 2. "^\d$"  //非負整數&#xff08;正整數 0&#xff09; 3. "^[0-9]*[1-9][0-9]*$"  //正整數 4. "^((-\d)|…

psa name_Windows 10安全性PSA:啟用自動商店更新

psa nameMicrosoft sometimes distributes important security updates through the Microsoft Store. That’s the lesson we’re learning in July 2020, when Microsoft sent an important update for Windows 10’s HEVC codecs not via Windows Update but via the Store.…

C# ListView 簡單命令例子

編寫工具常用到ListView控件&#xff0c;能簡單列出選項&#xff0c;常用到流程校驗顯示。這里介紹簡答顯示&#xff0c;添加與刪除功能。 1.添加表頭&#xff0c;與顯示。 this.listView1.Columns.Add("隊列", 40, HorizontalAlignment.Left);this.listView1.Column…

C#并行編程-Task

什么是異步同步和異步主要用于修飾方法。當一個方法被調用時&#xff0c;調用者需要等待該方法執行完畢并返回才能繼續執行&#xff0c;我們稱這個方法是同步方法&#xff1b;當一個方法被調用時立即返回&#xff0c;并獲取一個線程執行該方法內部的業務&#xff0c;調用者不用…

手機照片丟失或誤刪如何恢復

手機照片丟失或誤刪如何恢復&#xff1f;我們每個人從剛出生就開始拍照片&#xff0c;一周歲照片、二周歲照片、三周歲照片等&#xff0c;因為照片可以記錄我們從小到大的模樣和變化。無意照片對我們每個人來說都很重要&#xff0c;如果手機突然壞以前的照片都找不到了怎么辦呢…

C++學習筆記(二)——交換函數(swap)

這次我們要透過一個簡單的函數swap深入理解函數傳參的本質以及在C中如何選擇傳參方式。 先來看第一段程序&#xff1a; void swap(int x, int y) {int temp y;y x;x temp; } 通過main函數的調用&#xff0c;我們發現x,y并未實現交換&#xff1a; int main() {int x 1;int y…

大數據背后是個萬億市場

2014年的GDP中消費占比已經超過了50%&#xff0c;標志著中國經濟正在向市場經濟轉型&#xff0c;消費占GDP50%&#xff0d;70%是中等發達國家向市場經濟過渡的一個表現&#xff0c;未來中國經濟增長最大的引擎應該來源于消費&#xff0c;特別是個人消費。中國正在經歷經濟結構調…

ipad iphone開發_如何將iPhone或iPad置于恢復模式

ipad iphone開發If your iDevice starts acting strangely and you’ve run through the gamut of normal troubleshooting fixes, Recovery Mode may be your answer. This lets you easily reset the device and re-install iOS using iTunes. 如果您的iDevice開始運行異常&a…

從三層架構說起,談談對歷史項目的小改造

web development項目背景說明最近接手一個 “老” 項目的需求修改&#xff0c;項目整體基于 .net core 3.1 平臺&#xff0c;以傳統的三層架構為基礎構建。了解需求后&#xff0c;逐步對原有項目框架進行大概的了解&#xff0c;主要是熟悉一些框架的開發規范&#xff0c;基本工…

C# message簡單實現窗口間信息接收與發送

剛接觸windows 不同程序 窗口消息傳遞&#xff0c;不理解IntPtr SendMessage(int hWnd, int msg, IntPtr wParam, IntPtr lParam)這函數怎么用&#xff1f;消息內容怎么傳遞過去&#xff0c;還遇到需要message結構體&#xff1f;IntPtr怎么用呢&#xff1f; 但實際只是用來傳個…

在Kubernetes集群上部署和管理JFrog Artifactory

JFrog Artifactory是一個artifacts倉庫管理平臺&#xff0c;它支持所有的主流打包格式、構建工具和持續集成&#xff08;CI&#xff09;服務器。它將所有二進制內容保存在一個單一位置并提供一個接口&#xff0c;這使得用戶在整個應用程序開發和交付過程中&#xff0c;能更易于…

已知思科ASA設備漏洞仍在其新版本中存在

近日&#xff0c;名為“Shadow Brokers(影子經紀人)”的黑客組織聲稱成功入侵了跟NSA相關的Equation Group(方程式組織)的計算機系統&#xff0c;并成功竊取到了大量的機密信息以及黑客工具。隨后&#xff0c;“Shadow Brokers”黑客組織將60%的泄漏文件在網上進行了公布&#…

Yii Listview

轉載于:https://www.cnblogs.com/xiong63/p/8546376.html

Git 操作筆記/pip換源

pip換源 阿里云的源,在cmd命令行中輸入上述命令即可 pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ 還原commit 不可逆 1.git log2.選擇某次提交的commit ID3.使用git reset --hard commit ID 遠程查看與斷開 git remote -vgit remote rem…

.NET 7 的 AOT 到底能不能杠反編譯?

一&#xff1a;背景 1.講故事在B站&#xff0c;公眾號上發了一篇 AOT 的文章后&#xff0c;沒想到反響還是挺大的&#xff0c;都稱贊這個東西能抗反編譯&#xff0c;可以讓破解難度極大提高&#xff0c;可能有很多朋友對逆向不了解&#xff0c;以為用 ILSpy,Reflector,DnSpy 這…