程序总是不能通过所有用例!

//Q1
package lbz.sdust.newke.online;
/** 
 * @author LbZhang
 * @version 创建时间:2016年4月19日 下午7:02:12 
 * @description 类说明
 */
public class Transform {
	 public String trans(String s, int n) {
		if(s==null||s.length()!=n||n<1||n>500){
			return "";
		}

		StringBuilder  sb = new StringBuilder();
		String[] ts = s.split(" ");
		for(int i=ts.length-1;i>=0;i--){
			sb.append(ts[i]);
			sb.append(" ");
		}
		String res = sb.toString().substring(0,sb.toString().length()-1);
		
		StringBuffer sb1=new StringBuffer("");
		char[] resChar = res.toCharArray();
		for(int i=0;i<resChar.length;i++){
			if(resChar[i]>='a'&&resChar[i]<='z'){
				sb1.append((char)(resChar[i]-32));
			}else if(resChar[i]>='A'&&resChar[i]<='Z'){
				sb1.append((char)(resChar[i]+32));
			}else{
				sb1.append(resChar[i]);
			}
		}
		res = sb1.toString();
		
		return sb1.toString();
    }
	
	public static void main(String[] args) {
		System.out.print(new Transform().trans("This is a sample", 16));
	}

}  


全部评论
" This is a sample"这个用例不过
点赞
送花
回复
分享
发布于 2016-04-19 21:37
public String trans(String s, int n) {         if(s == null||s=="") return ""; String[] strs = s.split(" "); StringBuffer str = new StringBuffer(); for (int index = strs.length - 1;index >=0;index--) { str.append(strs[index]+' '); } StringBuffer result = new StringBuffer(); for(int i = 0;i < n;i++){ if(str.charAt(i)>='a'&&str.charAt(i)<='z')                  result.append(str.substring(i,i+1).toUpperCase()); else if(str.charAt(i)>='A'&&str.charAt(i)<='Z')                 result.append(str.substring(i,i+1).toLowerCase()); else if(str.charAt(i)==' ')result.append(' '); } return result.toString();     } 同问啊
点赞
送花
回复
分享
发布于 2016-04-19 21:43
滴滴
校招火热招聘中
官网直投
程序一直没过,最后考完才发现SAMPLE A IS tHIS后面多个空格
点赞
送花
回复
分享
发布于 2016-04-19 21:44
贴上我的AC代码吧,具体你的问题也不是很清楚,希望对你有帮助  public static String ReverseSentence(String string) {             char[] str = string.toCharArray();             if(string.length() <= 0 || (!string.contains(" ")||string.trim().equals(""))){     //要trim(),可能输入多个空格组成的字符串                 return string;             }             reveral(str, 0,string.length()-1);             int start=0;             for (int i = 0; i < str.length; i++) {                  if(str[i]==' ')                  {                      reveral(str, start, i-1);                      start=i+1;                  }                   }             reveral(str, start, str.length-1);             for(int i=0;i<str.length;i++)             {                 if('A'<=str[i]&&str[i]<='Z')                     str[i]=Character.toLowerCase(str[i]);                 else                     if('a'<=str[i]&&str[i]<='z') {                          str[i] = Character.toUpperCase(str[i]);                     }             }              return new String(str);         }                   private static void reveral(char[] str,int from ,int to)         {             char temp;             while(from < to)             {                 temp=str[from];                 str[from++]=str[to];                 str[to--]=temp;             }                     }
点赞
送花
回复
分享
发布于 2016-04-19 21:47
public static String trans(String s, int n) { if (s != null && (n >= 1 && n <= 500)) { char[] str = s.toCharArray(); s = ""; boolean containsBlank = false; Stack<String> stack = new Stack<>(); int k = 0; int j = 0; for (j = 0; j < str.length; j++) { if (str[j] != ' ' && (str[j] >= 'A' && str[j] <= 'Z')) { str[j] = (char) (str[j] + 32); } else if (str[j] != ' ' && (str[j] >= 'a' && str[j] <= 'z')) { str[j] = (char) (str[j] - 32); } if (str[j] == ' ') { stack.push(new String(str, k, j - k) + (k == 0? "" : " ")); k = j + 1; containsBlank = true; } } if (!containsBlank) stack.push(String.valueOf(str)); else stack.push(new String(str, k, j - k) + " "); while (stack.size() != 0) { s += stack.pop(); } } return s; } 算法太渣,刷题太少
点赞
送花
回复
分享
发布于 2016-04-19 21:56
JS 比较简单 function trans(s, n) {     //write code here     var arr = s.split(" ");     arr = arr.reverse();     for (var i = 0, len = arr.length; i < len; i++) {         var str = arr[i],             ans = "";         for (var j = 0; j < str.length; j++) {             if (str.charAt(j) <= 'Z' && str.charAt(j) >= 'A') {                 ans += str.charAt(j).toLowerCase();             } else {                 ans += str.charAt(j).toUpperCase();             }         }         arr[i] = ans;     }     return arr.join(" "); }
点赞
送花
回复
分享
发布于 2016-04-19 21:58

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务