這篇文章主要為大家展示了java中連個(gè)字符串是否互為回環(huán)變位,內(nèi)容簡而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會(huì)有收獲的,下面讓小編帶大家一起來看看吧。
創(chuàng)新互聯(lián)建站主營澄江網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),澄江h(huán)5微信小程序定制開發(fā)搭建,澄江網(wǎng)站營銷推廣歡迎澄江等地區(qū)企業(yè)咨詢本次給大家?guī)淼氖顷P(guān)于判斷連個(gè)字符串是否互為回環(huán)變位(Circular Rotaion)的java程序員面試經(jīng)常出現(xiàn)的題型,給大家做了兩種方式的解答,希望能幫助到你。
一般情況下都是筆試或者是直接上機(jī)操作,題型一般都是:如果字符串 s 中的字符循環(huán)移動(dòng)任意位置之后能夠得到另一個(gè)字符串 t,那么 s 就被稱為 t 的回環(huán)變位(circular rotation)。
A string s is a circular rotation of a string t if it matches when the characters are circularly shifted by any number of positions;
e.g., ACTGACG is a circular shift of TGACGAC, and vice versa. Detecting this condition is important in the study of genomic sequences.
Write a program that checks whether two given strings s and t are circular.
關(guān)于解答方面,我給在這里給出了2種方式:
解法一:
將s拆分成左右兩部分,然后另令s'=右+左,遍歷所有情況。如果是回環(huán)字符串的話,其中會(huì)有 s'=t 的情況。
public static boolean isCircularRotation(String s, String t) { if (s.length() != t.length()) return false; int sLen = s.length(); for (int i = 0; i <= sLen; i++) { // 注意subString的后角標(biāo)的界限 String sLeft = s.substring(0, i); String sRigth = s.substring(i + 1, sLen); if ((sRigth + sLeft).equals(t)) return true; } return false; }