1.子串行:
題輸入2個字串,判斷是否能從t中刪除0個或者多個獲得第二個,比如abcde刪除變成bce 無法變為dc;
思路:so easy 直接觀察因為沒有順序的要求,直接看看先找到子串行第乙個的字元在第乙個字串裡面的位置,比如abcde bce裡面的b第一次出現在父串裡面的位置是b後面又c,c後面又有e正好符合,所以成立
利用乙個指標指向第乙個陣列,寧乙個指標指向第二個陣列;
第乙個陣列只要出現第二個陣列出現的數字,就把第二個陣列後移
**:
/*
1.輸入2個字串;
2.然後在第乙個字串裡面找到第二個字串第乙個值,第二個j++;
加完後等於2的長度,輸出「對」
*/#include
#include
using
namespace std;
intmain()
}if(j==n.
size()
) cout<<
"yes"
;else cout<<
"no"
;}
2.謎題
利用字串輸入到二維陣列,注意字元陣列裡面的每一行就是一行字串,比如a[1][10]=;
cout5 4trgsj
xpoki
m vln
wpabe
uqhcf
*/#include
#include
using
namespace std;
char a[
10010][
10010];
void
swap
(char
&a,char
&b)int
main()
}}for(
int i=
0;i++i)
if(t ==
'b')
if(t ==
'l')
if(t ==
'r')}}
for(
int i=
0;i++i)
return0;
}3.迴圈小數:
輸入2個數字,輸出a/b
輸出迴圈小數,還有迴圈節長度
思路:我們在紙上模擬過程,發現如果取餘數的時候這個餘數出現過了就break掉
**:
/*
1.輸入m,n;
2. a[0]存入m/n;
輸出 3.接下來 輸出'.'
4.每次將上一次的取餘數*10在去除
5.*/
#include
using
namespace std;
int a[
10010];
int dp[
10010];
intmain()
cout
4.dna
直接看成乙個二維陣列就可以,觀察答案每個序列出現的數字就是所有字串對應位置上出現最多的字元
/*
1.輸入m,n;
2.大的迴圈是m小的是n
大的先迴圈一遍,在裡面迴圈一遍n
3.每次一列判斷輸出最大
5 8tatgatac
taagctac
aaagatcc
tgagatac
taagatgt
*/#include
#include
using
namespace std;
char map[
10010][
10010];
intmax
(int t,
int a,
int c,
int g)
intmain()
}int t=
0,a=
0,c=
0,g=0;
for(
int i=
0;i++i)if(
max(t,a,c,g)==1
) cout<<
't';
elseif(
max(t,a,c,g)==2
) cout<<
'a';
elseif(
max(t,a,c,g)==3
) cout<<
'c';
elseif(
max(t,a,c,g)==4
) cout<<
'g';
}}
好了字串到此結束,接下來是遞迴了
希望大家多多做題,多多總結。
演算法競賽入門經典(第二版) 習題
習題2 5 include int main if 10 n b 10 b 5 確定末位四捨五入的情況 printf d 10 n b 1 else printf d 10 n b return 0 注意 要及時輸出,防止n越界 習題2 6 include void result int num,i...
《演算法競賽入門經典(第二版)》 隨筆
c語言中整數值用 d輸出,實數 浮點數 用 f輸出。kiss原則 keep it and stupid 獲得程式執行時間 包括鍵盤輸入時間 include printf 執行時間 2f n double clock clocks per sec 輸入個數未知時 while scanf d x 1 對...
《演算法競賽入門經典(第二版)》習題(二)
習題 2 1 水仙花數 輸出100 999中的所有水仙花數。若3位數abc滿足abc a b c 則稱其為水仙花數。例如 153 1 5 3 所以153是水仙花數。include intmain return0 習題 2 2 韓信點兵 相傳韓信才智過人,從不直接清點自己軍隊的人數,只要讓士兵先後以三...