day01 -字符串
题目1:给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。
class Solution {
public String mergeAlternately(String word1, String word2) {
int m =word1.length();
int n =word2.length();
int i =0;
int j=0;
StringBuffer word_new =new StringBuffer();
while(i<m||j<n){
if (i<m){
word_new.append(word1.charAt(i));
++i;
}
if(j<n){
word_new.append(word2.charAt(j));
j++;
}
}
return word_new.toString();
}
}
注意点:1.用可变字符串来接 ,然后toString方法来返回接受
给定两个字符串 s 和 t ,它们只包含小写字母。
字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。
请找出在 t 中被添加的字母。
class Solution {
public char findTheDifference(String s, String t) {
char[] ss = s.toCharArray();
char[] tt =t.toCharArray();
int sums = 0;
int sumt = 0;
for(int i=0 ; i<ss.length;i++){
sums = sums + (ss[i]-‘a’);
sumt = sumt + (tt[i]-‘a’);
}
sumt = sumt + (tt[tt.length-1]-‘a’);
System.out.println(sumt-sums);
return (char)((sumt-sums)+97);
}
}
字符串匹配
class Solution {
public int strStr(String haystack, String needle) {
int n =haystack.length();
int m =needle.length();
for(int i =0;i+m<=n;i++)
{
boolean flag =true;
for(int j=0;j<m;j++){
if(haystack.charAt(i + j) != needle.charAt(j))
{ flag =false;
break;
}}
if (flag)
{ return i;
}
}
return -1;
}
}
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的 字母异位词。
class Solution {
public boolean isAnagram(String s, String t) {
if(s.length()!= t.length()){
return false;
}
char[] str1 =s.toCharArray();
char[] str2 =t.toCharArray();
Arrays.sort(str1);
Arrays.sort(str2);
return Arrays.equals(str1,str2);
}
}