/*
* 判斷乙個字串是否有重複字元
* 思路:
* 如果考慮用的是ascii碼,每個字元的大小在0-127之間
* 可以建立乙個陣列,長度為128
* 遍歷字串中的每個字元,將陣列中索引為該字元的ascii碼的位置加1。
* 比如,如果字元是a,則將下標為97的位置加1,以標明字元出現的次數
* 如果陣列中有元素大於1,則字串有重複元素
*/public
class
repeatstring
public
static
boolean
isrepeatstring
(string str)
//定義乙個陣列,標明每個字元出現的次數
int[
] charnum =
newint
[128];
for(
int i =
0;ilength()
;i++
)else
}return
true;}
}
//翻轉字串
//翻轉字串
public
class
reversestring
//使用陣列
public
static string reversestring_1
(string str)
return
newstring
(reversestr);}
//使用stringbuilder
public
static string reversestring_2
(string str)
}
/*
* 給定兩個字串,確定其中乙個字串的字元重新排列後,能否變成另乙個字串,返回boolean
* 規定大小寫為不同字元且考慮字串中的空格
* 可見,如果是true,兩個字串的字元和個數是一樣的,只是順序不一樣
*/public
class
issamestring
/* * 方法一:
* 比對兩個字串的長度,不相等直接返回 false
* 將兩個字串轉為字元陣列,利用arrays類的sort方法進行排序
* 判斷排序後兩個陣列是否相同,返回true
* 因為有排序,時間複雜度比較大
*/public
static
boolean
issame_1
(string stra, string strb)
/* * 方式二:
* 建立乙個陣列,把字元的ascii碼(或unicode碼)作為陣列下標
* 遍歷第乙個字串,遍歷到每乙個字元後將陣列對應下標位置加1
* 遍歷第二個字串,每遍歷乙個字元,將陣列對應下標位置減1
* 遍歷整個陣列,若元素不全為0,返回false
*/public
static
boolean
issame_2
(string stra, string strb)
for(
int i =
0;ilength()
;i++
)for
(int i =
0;i)return
true;}
}
/*
* 編寫方法,實現基本的字串壓縮功能
* 比如,字串「abbeeddfffgggg」會壓縮成「a1b2e2d2f3g4」
* 若壓縮後的字串沒有變短,則返回原先的字串
*/public
class
zipstring
public
static string zipstr
(string str)
else
else
} last = ch;}if
(count >=1)
if(str.
length()
<= sb.
length()
)return str;
return sb.
tostring()
;}}
/*
* 判斷兩個字串的字符集是否相同
*/public
class
hassamechars
//方法一
public
static
boolean
hassame_1
(string stra, string strb)
for(
int i =
0;ilength()
;i++
)for
(int i =
0;ilength()
;i++
)return
true;}
//方法二
public
static
boolean
hassame_2
(string stra, string strb)
for(
int i =
0;ilength()
;i++)if
(mapa.
size()
!=mapb.
size()
)return
false;if
(!mapa.
keyset()
.equals
(mapb.
keyset()
))return
false
;return
true;}
}
/*
* 判斷字串a是否是字串b的旋轉字串
* stra:adefa strb:defaa --> true
* stra:adefa strb:efada --> false
* 如果strb是stra的旋轉字串,則strb+strb中一定包含stra
*/public
class
isrotate
public
static
boolean
isrotate
(string stra, string strb)
}
/*
* 將字串按單詞翻轉,如thank you,翻轉成you thank
* 先將全部字元翻轉,再將每個單詞翻轉
*/public
class
wordreverse
public
static string reverseword
(string str)
return sb.
deletecharat
(sb.
length()
-1).
tostring()
;}public
static string reversestring
(string str)
}
/*
* 移除字串中連續出現的k個0
*/public
class
removezero
public
static string removezero
(string str,
int k)
else
sb.(ch)
; count =0;
}}//如果字串末尾都是0
if(count!=0)
}return sb.
tostring()
;}}
基礎練習 字串對比
基礎練習 字串對比 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定兩個僅由大寫字母或小寫字母組成的字串 長度介於1到10之間 它們之間的關係是以下4中情況之一 1 兩個字串長度不等。比如 beijing 和 hebei 2 兩個字串不僅長度相等,而且相應位置上的字元完全一致 區分大小...
基礎練習 FJ的字串
題目鏈結藍橋杯 基礎練習 題解 問題描述 fj在沙盤上寫了這樣一些字串 a1 a a2 aba a3 abacaba a4 abacabadabacaba 你能找出其中的規律並寫所有的數列an嗎?輸入格式 僅有乙個數 n 26。輸出格式 請輸出相應的字串an,以乙個換行符結束。輸出中不得含有多餘的空...
基礎練習 FJ的字串
問題描述 fj在沙盤上寫了這樣一些字串 a1 a a2 aba a3 abacaba a4 abacabadabacaba 你能找出其中的規律並寫所有的數列an嗎?輸入格式 僅有乙個數 n 26。輸出格式 請輸出相應的字串an,以乙個換行符結束。輸出中不得含有多餘的空格或換行 回車符。樣例輸入 3樣...