※ 引述《cyclone350 (老子我最神)》之铭言:
: 标题: Re: [问题] 请问如何写出奇偶分离合并程式
: 时间: Thu Oct 2 19:36:56 2014
: 顺便借这个机会问问大家 clean code 的粒度会到多细 ?
这句我看不懂 XD
来看一下我的版本
public static void main(String[] args) {
String source = "135246";
String dst = "";
int strLen = source.length();
int halfLen = (strLen + strLen % 2) / 2;
for(int i = 0; i < strLen; i++)
dst += source.charAt(i / 2 + (i % 2) * halfLen);
System.out.println(dst);
}
如果题目是分三块
那我会把 / 2 改成 / 3, 把 % 2 改成 % 3
(干脆设 int part = 2; 取代掉所有 2, 分三块时就 part = 3)
然后再验算一下,搞不好就能用了
(halfLen 改名叫 partLen, 每个区块的长度)
: 推 LPH66: 四楼提的那个东西很有趣, 它在 C/C++ 是未定义行为 10/03 00:42
: → LPH66: 但是在 Java 里是确实会把两个变量交换的 10/03 00:42
: → LPH66: 不过以编译器的角度来看传统交换写法比较能编出"快"的程式 10/03 00:45
: 推 LPH66: 在 C/C++ 未定义这件事可以看我这篇 #1Deo3lyi (C_and_CPP) 10/03 00:57
: → LPH66: 但是 java 规定算子的效应要在运算子计算前结算完毕 10/03 00:57
其实这句也看不懂 :P
不过我去看了你那篇
其实你提的是相容性:C 没标准定义
但微软范例(我感觉)有点霸道,它未必想要相容性
它要的就是'在 VC 可以跑'
我的 sample, 我的 compiler 可以跑;那就挂保证了
;;
说到相容性,其实我常把 C++ 写得像 pascal....
但那样 C++ 也不 C++ 了 XDDD