AcWing 779. 最長公共字串字尾
演算法
二分法
用途
查詢資料
適用情況
一批有序資料
基本思路
基本思想:選定這批數中居中間位置的一個數與所查數比較,看是否為所找之數,若不是,利用資料的有序性,可以決定所找的數是在選定數之前還是在之後,從而很快可以將查詢範圍縮小一半。以同樣的方法在選定的區域中進行查詢,每次都會將查詢範圍縮小一半,從而較快地找到目的數。
實現程式
#include "stdio.h"
#define M 10
intmain()
{
inta[10]={11,20,67,86,99,100,654,878,989,4563};
intfound,low,high,mid,i,b;
printf("請輸入要查詢的數字");
scanf("%d",&b);
low=0;
high=M-1;
found=0;
mid=5;
for(i=0;i<M;i++)
{
if(b==a[mid] )
{
printf("已找到資料:%d",mid);
gotoC;
}
else
{
mid=(low+high)/2;
if(a[mid]<b)
{
low=mid+1;
}
else
{
high=mid-1;
}
}
}
printf("沒有發現該數!");
C: ;
}
/*******************************************
* while(low<high)
* {
* mid=(mid+high)/2;
* if(b==a[mid])
* {
* found = 1;
* break;
* }
* eles if(b>a[mid])
* {
* low=mid+1;
* }
* else
* {
* high = mid-1;
* }
* }
* *****************************************/
補充
非法輸入問題
每個函式都有一個返回值
scanf的返回值為:
成功錄入 返回1
未被成功錄入 返回0
相關推薦
AcWing 779. 最長公共字串字尾
題目傳送門 一、知識點總結 1、 如何控制不斷的輸入,最終以輸入\\(0\\)為結束標識?
[AcWing 779] 最長公共字串字尾
點選檢視程式碼#include<iostream> using namespace std; const int N = 200; string str[N]; int n ;
java 遍歷字串_最長公共字串字首
技術標籤:java 遍歷字串java遍歷字串postgresql 遍歷字串陣列 最長公共字首 Question:編寫一個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串""。
acwing-897. 最長公共子序列
給定兩個長度分別為 N 和 M 的字串 A 和 B,求既是 A 的子序列又是 B 的子序列的字串長度最長是多少。
[AcWing 897] 最長公共子序列
複雜度 \\(O(n \\cdot m)\\) 總體複雜度 $ 1000 \\times 1000 = 1 \\times 10^{6} $ 點選檢視程式碼#include<iostream>
Python求兩個字串最長公共子序列程式碼例項
一、問題描述 給定兩個字串,求解這兩個字串的最長公共子序列(Longest Common Sequence)。比如字串1:BDCABA;字串2:ABCBDAB。則這兩個字串的最長公共子序列長度為4,最長公共子序列是:BCBA
查詢兩個字串a,b中的最長公共子串(HJ65)
一:解題思路 方法一:暴力破解法 方法二:動態規劃 二:完整程式碼示例 (C++版和Java版)
編寫一個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 ""。
編寫一個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 ""。
兩個字串最長公共子串
給定兩個字串,找出最長公共子串,並返回該子串,如果不存在則返回-1. 示例輸入
Leetcode 14 字串最長公共字首
技術標籤:Leetcodec++leetcode 題目要求: 編寫一個函式來查詢字串陣列中的最長公共字首。
編寫一個函式來查詢字串陣列中的最長公共字首。
技術標籤:資料結構和演算法 編寫一個函式來查詢字串陣列中的最長公共字首。 如果不存在公共字首,返回空字串 “”。 示例 1: 輸入: [“flower”,“flow”,“flight”] 輸出: “fl” 示例 2: 輸入: [“dog”,“
【演算法之LeetCode系列(1)】——字串最長公共字首解法之一
技術標籤:演算法之力扣系列leetcodejavascript 主要思想 逐個比較,先比較兩個字串的最長公共字首,找出他們的最長公共字首,然後再與另外的字串進行比較,直到找到所有串的最長公共字首話不多說,都在程式碼裡
python3面試-查詢字串陣列中的最長公共字首
問題 編寫一個函式來查詢字串陣列中的最長公共字首。 空字串“” 輸入: [\"flower\",\"flow\",\"flight\"]輸出: \"fl\"輸入: [\"dog\",\"racecar\",\"car\"]輸出: \"\"
[紀中D1A組T1/GDOI2016]最長公共子串 #字串# #暴力#
目錄題目思路程式碼 題目 思路 好想不好寫系列 不難發現,只要兩個區間相交,被覆蓋的元素是可以所以互換的,也就是說,相交區間可以合併為一個大區間,用排序實現:
力扣刷題計劃-字串-最長公共字首
1.原題地址: 14. 最長公共字首 - 力扣(LeetCode) (leetcode-cn.com) 2.題目描述:編寫一個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串\"\"。
字串雙雜湊+自定義unordered_map pair<int,int>當key 1923. 最長公共子路徑
1 class Solution { 2 public: 3typedef pair<int,int> pii; 4const int k1=1331; 5const int k2=13331;
java:尋找兩個字串的最長公共子串
java:尋找兩個字串的最長公共子串 // 找一個字串的所有子串 public static List<String> findAllStr(String s) {
AcWing 1490. 最長上升子串 模擬優化
地址https://www.acwing.com/solution/content/15094/ 給出一個長度為 n 的由正整數構成的序列,你需要從中刪除一個正整數,很顯然你有很多種刪除方式,你需要對刪除這個正整數以後的序列求其最長上升子串,請問在所
Leetcode 1143 最長公共子序列
當一個問題用遞推不好描述時,將目光從整體放到區域性,用遞迴描述對於每個元素我們需要做什麼。
LeetCode 1143. 最長公共子序列
給定兩個字串 text1 和 text2,返回這兩個字串的最長公共子序列的長度。 一個字串的 子序列 是指這樣一個新的字串:它是由原字串在不改變字元的相對順序的情況下刪除某些字元(也可以不刪除任何字元)後組成的新