1. 程式人生 > >運用遞迴判斷兩字串是否相同

運用遞迴判斷兩字串是否相同

#include<iostream>

using namespace std;

bool f(string a,string b){
	if(a.length() != b.length()){
		return false;
	}
	if(a.length() == 0){
		return true;
	}
	if(a[0] != b[0]){
		return false;
	}
	return f(a.substr(1),b.substr(1));
}
int main(){
	string a,b;
	a = "abc";
	b = "abcb";
	cout<<f(a,b);
}

注:

(1)substr方法,返回一個從指定位置開始的指定長度的子字串。

    stringvar.substr(begin,length),

    該方法有三個引數:

    stringvar,要提取子字串的字串。

    begin,所需子字串的起始位置。字串中的第一個字元的索引為 0

    length,所需子字串的長度,即子字串包含字元的個數。該引數可省略,若省略則預設提取到stringvar的最後。若length為0,返回空字串。

相關推薦

運用判斷字串是否相同

#include<iostream> using namespace std; bool f(string a,string b){ if(a.length() != b.length()){ return false; } if(a.length

程設作業(判斷個數互質)

giving an integer N (2 <= N <= 20) and a real number M (0.5 < M <= 1), output all proper fractions whose numerator is l

運用字串最大重複數

void MaxLengthCore(char *cur,char *pre,int *max,int cursum) { if(*cur == '\0') return ; if(pre !=NULL && *cur == *pre) { ++cursum; if(cursum >

判斷字串相似度

/** * <h5>功能:判斷兩字串相似度(最小為0,最大為1)</h5> * * @param strOne * @param strTwo * @return 兩字串相似度(最小為0,最大為1) */ public static double SimlaritySt

C語言: 用實現對字串的逆置

#include <stdio.h> #include <windows.h> /* 用遞迴實現對字串的逆置 */ void Reverse(char* string) { int len = strlen(string); if (strlen(string)

連結串列與-LeetCode24-交換連結串列中的節點

題目 給定一個連結串列,兩兩交換其中相鄰的節點,並返回交換後的連結串列。 示例: 給定 1->2->3->4, 你應該返回 2->1->4->3. 說明: 你的演算法只能使用常數的額外空間。 你不能只是單純的改變節點內部的值,而是需要實際的進行節點交換

D--LeetCode87-擾亂字串

題目 給定一個字串 s1,我們可以把它遞迴地分割成兩個非空子字串,從而將其表示為二叉樹。 下圖是字串 s1 = "great" 的一種可能的表示形式。 great / \ gr eat / \ / \ g r e at

Leetcode---每個節點的右向指標--解法(種)

本文接上一篇文章:非遞迴方法 解法一: 先將根節點的next置為null,再分別處理左右孩子 左右孩子採用遞迴的方式 這裡的遞迴不是最優的,遞迴過程中產生了重複,而必須這樣寫目的是處理left->right和right->left,經過分析,除最外側的

二叉樹的先序遍歷、中序遍歷、後序遍歷: & 迴圈 種實現

一、預備知識 首先你得了解 樹 的基本概念,二叉樹是每個結點至多隻有兩個子結點的樹,常稱之為左右結點。 二叉樹的遍歷方式有 先序遍歷(preorder traeversal)、中序遍歷(inorder traversal)、後序遍歷(postorder traversal

Unity編譯器之快捷新增碰撞器,和移除碰撞器(運用

在實際做專案中,有時候經常需要對地形的碰撞體進行編輯,比如很多不需要加碰撞體的物件卻帶著碰撞體,如果手動去移除,工作量又是很大(經常子物體又是套著子物體,十分複雜),有時候又需要新增碰撞體,本人就移除碰撞體這件事件花了很長時間,不勝其煩,網上的資料也不是太多,也不全。所以在這給大家貼出流程與程式碼。

嘗試用函式判斷括號使用的正確性

嘗試用函式遞迴判斷括號使用的正確性 `` #include <iostream> using namespace std; int check(char str[], char c, int *n); int main() { char str[60];

方式求字串的有序排列組合

#include <stdio.h> #include <stdlib.h> #include <vector> #include <string> #include <map> using namespace std; void Ge

【資料結構週週練】020 利用判斷一棵二叉樹是否為二叉排序樹

一、二叉排序樹 二叉排序樹可以說是資料結構中相當重要的內容之一啦,前兩次給大家講了二叉排序樹的建立、遍歷與查詢。今天給大家分享的是二叉排序樹的應用,判斷一個二叉樹是否為一棵二叉排序樹。 二叉排序樹的特點大家都知道,左子樹根結點值<根結點<右子樹根結點值,並且中

運用計算在n個球中任取m個球(不放回)共有多少種取法

答案如下:#include<iostream> using namespace std; int f(int n, int m){ if(n < m) return 0; i

實現逆轉字串

遞迴實現逆轉字串 思路分析:運用指標的方法傳參,設定頭尾指標,交換頭尾,將尾點暫存為‘\0’,再次呼叫逆轉函式,引數設定為指標指向下一個字元,以此類推,當頭指標內為‘\0’時,不再呼叫,返回引數,依次恢復尾點。 #define _CRT_SECURE_NO_WARNINGS #inc

利用判斷文(Java)

public class HuiWen{ public static void main(String[] args) { char[] strs = {'2','4','d','4','2'}

資料庫多層資料運用演算法生成樹形資料

第一步:準備表結構及對應的表資料1.表結構create table City(id char(32) not null,name varchar2(30),parent_id char(32) //父級欄位)2.插入資料insert into City (id, name,

判斷一維陣列是否為升序陣列

這麼容易的題,考場竟然沒寫出來,慚愧啊!書還得多看啊! <span style="font-size:14px;">bool UpSort(int a[], int start, int

第十二週oj專案A運用倒序輸出數字

#include <stdio.h> void inverted(int); /*函式宣告*/ int main() { int n; /*需要逆序的整數*/ scanf("%d",&n); inverted(n); /*呼叫逆序

C語言:判斷字串的大小關係(strcmp法)

題目來源:大工慕課 連結 作者:Caleb Sung 參考解答 邏輯非常簡單,這裡不再贅述: #include<stdio.h> #include<string.h>