刷題-CC150-Java實現__Java

來源:互聯網
上載者:User

歡迎訪問 部落格新址 CC150

標籤: 刷題 編程 Java 8.1 1.1 字串互異

確定一個字串的所有字元是否全都不同。 方法一:逐字元比較的方法。時間複雜度: O(n2) O(n^2)。

import java.util.*;public class Different {    public boolean checkDifferent(String iniString) {        // write code here        if (iniString.length()>256)            return false;        for (int i=0; i<iniString.length()-1; i++) {            for (int j=i+1; j<iniString.length(); j++) {                if (iniString.charAt(i) == iniString.charAt(j))                    return false;            }        }        return true;    }}
方法二:
import java.util.*;public class Different {    public boolean checkDifferent(String iniString) {        // write code here        if (iniString.length()>256)            return false;        boolean[] char_set = new boolean[256];        for (int i=0; i<iniString.length(); i++) {            char val = iniString.charAt(i);            if ((val < 0) ||(val > 255))    //檢查輸入                return false;            if (char_set[val])                return false;            char_set[val] = true;        }        return true;    }}
1.2 原串翻轉

翻轉一個給定的字串(可以使用單個過程變數)。

使用Array實現

import java.util.*;public class Reverse {    public String reverseString(String iniString) {        // write code here        char[] strArray = iniString.toCharArray();        int low = 0, high = iniString.length()-1;        while (low < high) {            char tmp = strArray[low];            strArray[low] = strArray[high];            strArray[high] = tmp;            low++;            high--;        }        String tmpString = new String(strArray);        return tmpString;    }}

使用StringBuilder

import java.util.*;public class Reverse {    public String reverseString(String iniString) {        // write code here        StringBuilder sb = new StringBuilder(iniString);        int low = 0, high = sb.length()-1;        while (low < high) {            char tmp = sb.charAt(low);            sb.setCharAt(low, sb.charAt(high));            sb.setCharAt(high, tmp);            low++;            high--;        }           return sb.toString();    }}
1.3

確定其中一個字串的字元重新排列後,能否變成另一個字串。這裡規定大小寫為不同字元,且考慮字串重點空格。

import java.util.*;public class Same {    public boolean checkSam(String stringA, String stringB) {        // 最佳化 - 如果兩個字串長度不等,一定不可能        if (stringA.length() != stringB.length())            return false;        return sortMy(stringA).equals(sortMy(stringB));    }    public String sortMy(String s) {        char[] as = s.toCharArray();        java.util.Arrays.sort(as);        return new String(as);    }}
1.4 空格替換

空格替換

import java.util.*;public class Replacement {    public String replaceSpace(String iniString, int length) {        return iniString.replaceAll(" ", "%20");    }}
1.5 基底字元串壓縮

基底字元串壓縮

import java.util.*;public class Zipper {    public String zipString(String iniString) {        // write code here        String mystr = "";        char last = iniString.charAt(0);        int count = 1;        for (int i=1; i<iniString.length(); i++) {            if (iniString.charAt(i)==last) {                count++;            } else {                mystr += last + "" + count;                last = iniString.charAt(i);                count = 1;            }        }        mystr += last + "" + count;        if (mystr.length() > iniString.length())            return iniString;        else {            return mystr;        }    }}
1.6 d
 
1.4 d 
 
1.3 d 
 
1.4 d 
 
1.3 d 
 
1.4 d 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.