1. 程式人生 > >藍橋杯第五屆 兩個字串中最大子序列

藍橋杯第五屆 兩個字串中最大子序列


一個串的子串是指該串的一個連續的區域性。如果不要求連續,則可稱為它的子序列。
比如對串: "abcdefg" 而言,"ab","abd","bdef" 等都是它的子序列。
特別地,一個串本身,以及空串也是它的子序列。 對兩個串而言,可以有許多的共同的子序列,我們關心的是:它們所共同擁有的長度最大的子序列是多長。以下程式碼實現了這個問題的求解。請填寫劃線部分缺失的程式碼。 注意:只填寫劃線部分缺少的內容,不要填寫任何多餘的符號或註釋、說明等。例如,不要填寫已經給出的小括號。
#include<stdio.h> 
#include<string.h>
inline max(int a, int b)
{
	return a>b?a:b;
}

int f(char* x, char* y)
{
	if(strlen(x)==0) return 0;
	if(strlen(y)==0) return 0;
	
	if(*x == *y) return f(x+1, y+1) + 1;
	
	return max(f(x+1,y),f(x,y+1));   //填空 return max( ______________________ );
}

int main()
{
	printf("%d\n", f("ac","abcd")); //2
	printf("%d\n", f("acebbcde1133","xya33bc11de")); //5
	return 0;
}

相關推薦

藍橋 字串大子序列

一個串的子串是指該串的一個連續的區域性。如果不要求連續,則可稱為它的子序列。 比如對串: "abcdefg" 而言,"ab","abd","bdef" 等都是它的子序列。 特別地,一個串本身,以及空

藍橋JavaC組楊輝三角問題解決方法

code 自己 格式 謝謝 註意 格式化 args 作用 二維數組 此題是藍橋杯第五屆Java組考試題目之一,一道解決打印楊輝三角的填空題 以下是具體內容: Question: 二項式的系數規律,我國數學家很早就發現了。 如【圖1.png】,我國南宋數學家楊輝126

藍橋題目求解

第四題 題目 今有7對數字:兩個1,兩個2,兩個3,…兩個7,把它們排成一行。 要求,兩個1間有1個其它數字,兩個2間有2個其它數字,以此類推,兩個7之間有7個其它數字。如下就是一個符合要求的排列: 17126425374635 當然,如果把它倒

藍橋校內選拔賽2 3【浮點數操作】

1/1 + 1/2 + 1/3 + 1/4 + … 在數學上稱為調和級數。 它是發散的,也就是說,只要加上足夠多的項,就可以得到任意大的數字。 但是,它發散的很慢: 前1項和達到 1.0 前4項和才超過 2.0 前83項的和才超過 5.0 那麼,請你

java藍橋之猜字母

標題:猜字母    把abcd...s共19個字母組成的序列重複拼接106次,得到長度為2014的串。    接下來刪除第1個字母(即開頭的字母a),以及第3個,第5個等所有奇數位置的字母。    得到的新串再進行刪除奇數位置字母的動作。如此下去,最後只剩下一個字母,請寫出該

字串大相同的子串

求得短的字串和長的字串兩個字串中相同的字串段。    public static String getMaxSubString(String s1, String s2) {         String

【Java練習】獲取字串長的相同欄位

獲取兩個字串中最長的子串並輸出。 思路解析: 1.首先考慮我們要知道長度最短的字串,這樣子在比較的次數會更少。 2.我們首先從長度最小的字串每次擷取一小段判斷是否在大串中 3.考慮到有可能有多個長度相同的子串,那麼我們就應該將他們同時儲存到集合中 4.要多考慮到各種異常的發生。

編寫程式,獲取字串大相同子串

private void test() { String a = "Valaienie"; String b = "Maierginle"; String max = a.length() > b.length() ? a : b; String min =

找出字串大的公共子串(java實現)

import java.util.HashSet; import java.util.Set; public class Test { public static void main(String[] args) { String

Java找出字串大的子串

[java] view plain copy print?// 找一個字串的最大子串    publicstaticvoid main(String[] args) {          String s1 = ”qwerabcdtyuiop”;          String s2 = ”xc

135、程式設計實現:找出字串大公共子字串,如"abccade","dgcadde"的大子串為 "cad"

35、程式設計實現:找出兩個字串中最大公共子字串,如"abccade","dgcadde"的最大子串為 "cad" /* 35、程式設計實現:找出兩個字串中最大公共子字串,如"abccade","dgcadde"的最大子串為 "cad" 不同於56的最長公共子串 DP題

藍橋-牌型總數&&藍橋-湊算式&&藍橋-方格填數

amp abs 絕對值 return tin ace con name 可能性 牌型總數 去掉大小王之後就相當於4套1到13的數字牌的集合(因為忽略花色了),所以1到13各有4張;枚舉思路就是考慮13種數字牌在自己手中到底有幾張,共有五種可能性,也就是某種數字牌在手中可

藍橋-省賽javaA組-搭積木

搭積木 小明最近喜歡搭數字積木, 一共有10塊積木,每個積木上有一個數字,0~9。 搭積木規則: 每個積木放到其它兩個積木的上面,並且一定比下面的兩個積木數字小。 最後搭成4層的金字塔形,必須用完所有的積木。 下面是兩種合格的搭法: 0 1 2 3 4 5 6 7 8 9 0 3

藍橋省賽JAVA真題----生命之樹

生命之樹 在X森林裡,上帝建立了生命之樹。  他給每棵樹的每個節點(葉子也稱為一個節點)上,都標了一個整數,代表這個點的和諧值。  上帝要在這棵樹內選出一個非空節點集S,使得對於S中的任意兩個點a,b,都存在一個點列 {a, v1, v2, …, vk, b} 使得

藍橋 省賽試題 四平方和

四平方和定理,又稱為拉格朗日定理: 每個正整數都可以表示為至多4個正整數的平方和。 如果把0包括進去,就正好可以表示為4個數的平方和。 比如: 5 = 0^2 + 0^2 + 1^2 + 2^2 7

藍橋 省賽試題 生日蠟燭

生日蠟燭 某君從某年開始每年都舉辦一次生日party,並且每次都要吹熄與年齡相同根數的蠟燭。 現在算起來,他一共吹熄了236根蠟燭。 請問,他從多少歲開始過生日party的? 請填寫他開始過生日party的年齡數。 注意:你提交的應該是一個整數,不要填寫任何多餘的內容或說明性文字。

藍橋-省賽javaC組- 骰子游戲

骰子游戲 我們來玩一個遊戲。 同時擲出3個普通骰子(6個面上的數字分別是1~6)。 如果其中一個骰子上的數字等於另外兩個的和,你就贏了。 下面的程式計算出你能獲勝的精確概率(以既約分數表示) public class Main { public static int gcd

藍橋-省賽javaA組-抽籤

抽籤 X星球要派出一個5人組成的觀察團前往W星。 其中: A國最多可以派出4人。 B國最多可以派出2人。 C國最多可以派出2人。 .... 那麼最終派往W星的觀察團會有多少種國別的不同組合呢? 下面的程式解決了這個問題。 陣列a[] 中既是每個國家可以派出的最多的名額。

藍橋-藍橋java B組決賽

一、憤怒小鳥 X星球憤怒的小鳥喜歡撞火車!  一根平直的鐵軌上兩火車間相距 1000 米 兩火車 (不妨稱A和B) 以時速 10米/秒 相對行駛。 憤怒的小鳥從A車出發,時速50米/秒,撞向B車, 然後返回去撞A車,再返回去撞B車,如此往復.... 兩火車在相距1米處停車。

藍橋C/C++ A組省賽(2017)第一題:迷宮

標題:迷宮X星球的一處迷宮遊樂場建在某個小山坡上。它是由10x10相互連通的小房間組成的。房間的地板上寫著一個很大的字母。我們假設玩家是面朝上坡的方向站立,則:L表示走到左邊的房間,R表示走到右邊的房間,U表示走到上坡方向的房間,D表示走到下坡方向的房間。X星球的居民有點懶,