寒假訓練--字串--子串
子串
Time Limit: 1000MS Memory limit: 65536K
題目描述
對於一個字串變數,例如"abcdefghijkl",它的子串就是像"cdefg"這樣可以從中找到的連續的字串。給定一個字串和它的一個子串,求出這個子串在原串中不重疊得出現了幾次。例如:原串為:aaaa 子串為:aa。那麼子串在原串中出現了兩次。輸入
輸入資料的第一行為一個整數 T(0 < T < 20) 接下來 T 行每行為兩個空格分隔的字串,分別代表原串和子串(原串長度不超過100,子串長度不超過10)。輸出
對於每組測試資料,按照題目描述輸出對應的結果。示例輸入
2 aaaa aa apapapapapapa pa
示例輸出
2 6
提示
來源
qinchuan示例程式
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int i , j , li , lj , flag , k , n , count; char str1[300] , str2[300] ; scanf("%d", &n); for(k = 1 ; k <= n ; k++) { scanf("%s%s", str1,str2); flag = 0 ; count = 0 ; lj = strlen(str2); li = strlen(str1); for(i = 0 ; i < li ; i++) { if(str1[i] == str2[0]) { for(j = 0 ; i < li , j < lj ; i++, j++) if(str1[i] != str2[j]) break; if(j >= lj) count++; i--; } } printf("%d\n", count); } return 0; }
相關推薦
寒假訓練--字串--子串
子串 Time Limit: 1000MS Memory limit: 65536K 題目描述 對於一個字串變數,例如"abcdefghijkl",它的子串就是像"cdefg"
最大子序列、最長遞增子序列、最長公共子串、最長公共子序列、字串編輯距離總結
一、最大子序列 即找出由陣列成的一維陣列中和最大的連續子序列。例如{5, -6, 4, 2}的最大子序列是{4, 2},它們的和是6。 思路:假設陣列為num,用dp[i]儲存當遍歷到num[i]時,num[0]~num[i]之間求得的最大子序列的和。 遍歷num,當遍歷到nu
Blue Jeans POJ - 3080 (多個字串的最長公共子串)
題意: 給定n個字串,要你求出這n個字串的最長公共子串,如果存在多個輸出字典序最小的那個. 分析: KMP+暴力去列舉即可. #include<stdio.h> #incl
判斷非空字串是否由子串首尾拼接
如輸入abcabc,則返回abc,若輸入abcbc,返回false. 大致思路是,從第一個字元開始,到中間的字元,依次生成子串b,呼叫方法,判斷是否在父串a中由首尾拼接而成。判斷輸入的字串a是否為這個字串b的倍數,若不是,直接返回false,若是,迴圈擷取和剛剛找到的字元串同長度的字
演算法學習——尋找字串中的最長迴文子串
文章轉載自公眾號《網際網路偵查》 /** * @author xiaoshi on 2018/9/24. * Happy Mid-Autumn Festival */ public class PlalindromeString { // 判斷一個字串是否迴文,演算法中用
演算法題2:統計字串A中長度為k的子串在字串B中出現的總次數
問題: 輸入一個正整數 k,一個字串 A和字串B,統計A中長度為k的子串在B中出現的總次數,輸出總次數。 例如:k=2, A =’abba’, B=’abbaab’,則A的長度為2 的子串有 [‘ab’,’bb’,’ba’],它們在B中出現的次數分別為2、1、1,所以輸
5.2 字串中數字子串的求和
【題目】: 給定一個字串str,求其中全部數字串所代表的數字之和 【要求】: 1. 忽略小數點字元,例如"A1.3",其中包含兩個數字1和3 2. 如果緊貼數字子串的左側出現字元"-", 當連續出現的數量為奇數時,則數字視為負,連續出現的數量為偶數時,則數字視為正。例如,"
給定一個字串,找出不含有重複字元的最長子串的長度。 示例: 給定 "abcabcbb" ,沒有重複字元的最長子串是 "abc" ,那麼長度就是3。 給定 "bbbbb" ,最長的子串就是 "b
Str = raw_input('plese input Str:') def qiu_chongfu(Str2):#定義判斷字串是否含有重複字元,如有返回0,沒有返回1 biao = 0 for i in range(0,len(Str2)): for j in
兩個陣列的中位數以及一個字串中最長的不重複的子串
題目:兩個陣列的中位數 指先找到兩個有序陣列的中位數,然後求兩個中位數的平均值 程式碼如下: # _*_ coding: utf-8 _*_ # 題目:求兩個排序陣列的中位數的平均數 class Solution: def __init__(self, nums1, nu
cf#516C. Oh Those Palindromes(最多回文子串的字串排列方式,字典序)
http://codeforces.com/contest/1064/problem/C 題意:給出一個字串,要求重新排列這個字串,是他的迴文子串數量最多並輸出這個字串。 題解:字典序排列的字串迴文子串最多。 1 #include<bits/stdc++.h> 2 using n
兩個字串中最大相同的子串
求得短的字串和長的字串兩個字串中相同的字串段。 public static String getMaxSubString(String s1, String s2) { String
Leetcode 336. Palindrome Pairs 給出一種遍歷字串迴文子串中心的方法
題意 給你n個不同的字串,讓你找出所有的字串對(i, j),使得s(i) + s(j)是迴文串且i不等於j 思路 這題沒有給資料範圍,所以你其實不知道應該給什麼複雜度的演算法,我看了眼Discussion,先確定了下需要的複雜度 複雜度是O(n *
找出字串最長不重複子串(或者是列表)
# 找出來一個字串中最長不重複子串def find_Maxlen_Son_list(astr): maxlen = 0 定義最長字串的初始長度// dict = {} list1 = [] for i in range(0,len(astr)): str2 = ''
求任意兩個字串的最大相同子串
c語言# include<stdio.h> #include<string.h> int main(){ char a[100],b[100]; printf("s1="); scanf("%s",a); printf("s2="); s
輸入一個子串和一個整串,求該子串在整個字串中出現的次數
編寫應用程式,輸入一個子串和一個整串,求該子串在整個字串中出現的次數 import java.util.*; public class Tetso5 { public static void main(String[] args) { // TODO Auto-generated
Manacher演算法(一個字串中找到最長迴文子串)
零、預備知識 Manacher用於在一個字串中找到最長的迴文子串。 迴文串:正著念和反著念一樣,例如aabbaa,anna等。 注意子串與子序列的區別: 子串必須是在原字元中可以找到的。比如 " I am a student"。am是子串(當然也是子序列),但是aa就不是子串了(是
給定一個字串s,返回去掉子串"mi"後的字串。
給定一個字串s,返回去掉子串"mi"後的字串。(注:刪除n個mi後,仍包含mi應一同刪除,如ammimiib,應返回ab)要求時間複雜度不超過2n。 package com.weshare.eel.task.utils; import java.util.Stack; /** *
檢索每個字串的子串(python散列表實現)
import re def get_str(i,num): str_list = re.findall(r'.{{{str_length}}}'.format(str_length=i), num) return str_list def add_str(res,
C程式設計——程式設計實現查詢兩個字串的最大公共子串2.0
1、 題目:程式設計實現查詢兩個字串的最大公共子串 示例:“aocdfe"和"pmcdfa"最大公共子串為"cdf” 注:最大公共子串有不止一個時,只輸出第一個最大子串 利用斐波那契數列數的思想 **2、**程式 #include <stdio.h> #include &
C程式設計——程式設計實現查詢兩個字串的最大公共子串1.0
1、 題目:程式設計實現查詢兩個字串的最大公共子串 示例:“aocdfe"和"pmcdfa"最大公共子串為"cdf” 注:最大公共子串有不止一個時,只輸出第一個最大子串 **2、**程式 #include <stdio.h> #include <string.h>