《劍指offer》目錄索引
問題描述:
請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣中任意一格開始,每一步可以在矩陣中向左、右、上、下移動一格。如果一條路徑經過了矩陣的某一格,那麼該路徑不能再次進入該格仔。例如在下面的3×4的矩陣中包含一條字串「bfce」的路徑(路徑中的字母用下劃線標出)。但矩陣中不包含字串「abfb」的路徑,因為字串的第乙個字元b佔據了矩陣中的第一行第二個格仔之後,路徑不能再次進入這個格仔。思路:a b t g
c f c s
j d e h
1)找路徑,需要遍歷矩陣,可採用回溯遞迴的方法遍歷矩陣,當是合法的座標時,可遍歷上下左右四個座標**:2)二維陣列實現時,標記走過的路徑,當走過合法路徑後,進行標記,避免重複
3)一維陣列實現時,注意下標的控制,同時記錄走過的路徑時,需將其儲存到另一矩陣當中,注意是相同位置
1)二維陣列實現
sdatatype arr[row][col] = ,,,
};//列印矩陣
void printarr()
printf("\n");
}printf("\n\n");
}//遞迴法
int haspath(sdatatype arr[row][col], sdatatype* str, int row, int col)}}
return haspath;
}//判斷是否為路徑
int stringispath(sdatatype (*arr)[col], sdatatype* str)}}
return0;}
void test()
void test1()
void test2()
2)一維陣列實現
int path(char* arr, char* str, int row, int col, int startrow, int startcol,int len,char* path)}}
return haspath;
}int stringispath(char* arr, char* str, int row, int col,int startrow,int startcol)}}
return0;}
void test3()
void test4()
void test5()
劍指offer 二 字串 cpp
1.替換空格void replacespace char str,int length originallen int newlen originallen numofblank 2 if newlen length return while originallen 0 originallen ne...
劍指offer 字串
問題描述 class solution auto res temp.c str strcpy str,res strcpy 關於c 中string和char 的區別參考 問題描述 請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含0...
劍指offer 字串
問題描述 function replacespace str 問題描述 請實現乙個函式用來匹配包括 和 的正規表示式。模式中的字元 表示任意乙個字元,而 表示它前面的字元可以出現任意次 包含 0 次 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串 aaa 與模式 a.a 和 ab ac a...