字串碎片
1. 常規思路
統計所有碎片的總長度、碎片的數量,進行除法運算。
public class Main
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
String str = scan.nextLine().trim();
double sum = 0;
int ncount = 1; // 碎片個數
int sliceLen = 1; // 某一個碎片的長度
// 如果字串為空
if (str == "")
{
System.out.println(0);
return;
}
// 如果字串長度為1
if (str.length() == 1)
{
System.out.println(1);
}
for (int i=0; i<str.length()-1; i++)
{
// 如果當前字元和下一個相等
if (str.charAt(i) == str.charAt(i+1))
{
sliceLen++;
}
else
{
sum += sliceLen;
ncount++; // 字元種類數加1
sliceLen = 1;
}
}
// 加上最後一個碎片的長度
sum += sliceLen;
System.out.println(sum / ncount);
}
}
2. 利用技巧
所有碎片的總長度是已知的,即為字串的總長度,所以只需考慮不同碎片的個數即可。
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
String str = scan.nextLine().trim();
char c = str.charAt(0);
int n = 1; // 記錄不同的碎片數量
for (int i=1; i<str.length(); i++)
{
if (c != str.charAt(i))
{
c = str.charAt(i);
n++;
}
}
System.out.println(str.length() * 1.0 / n);
}
相關文章
- (網易2018校招筆試)[程式設計題] 字串碎片筆試程式設計字串
- jQuery碎片jQuery
- 知識碎片
- Oracle 表碎片Oracle
- oracle碎片清理Oracle
- oracle 碎片整理Oracle
- MySQL表碎片整理MySql
- oracle表碎片整理Oracle
- 碎片批處理
- ORACLE碎片問題Oracle
- oracle碎片整理方法Oracle
- MysqL碎片整理優化MySql優化
- Design Pattern理解碎片
- jQuery 文件碎片處理jQuery
- android:碎片的概念Android
- android: 碎片的demoAndroid
- 回收mysql表的碎片MySql
- DataX的知識碎片
- Android 碎片(Fragment)講解AndroidFragment
- phpcms碎片管理如何使用呢?PHP
- mysql之 OPTIMIZE TABLE整理碎片MySql
- MySQL的表碎片處理MySql
- Oracle資料表碎片整理Oracle
- matlab練習程式(碎片)Matlab
- 表空間碎片檢測
- ORACLE碎片整理一(轉載)Oracle
- ORACLE碎片整理二(轉載)Oracle
- android:碎片的使用方式Android
- Oracle 資料庫碎片整理Oracle資料庫
- Oracle資料庫碎片整理Oracle資料庫
- Vite打包碎片化,如何化解?Vite
- Java鬥地主專案碎片Java
- Spark Core的知識碎片Spark
- 碎片化時間高效利用
- windows10系統磁碟碎片整理在哪 win10如何開啟磁碟碎片整理WindowsWin10
- 碎片化的時代,如何學習
- 碎片化學習前端知識前端
- 碎片化學習Java大綱Java