1.替换所有的问号
题目链接:1576. 替换所有的问号 - 力扣(LeetCode)
class Solution {
public String modifyString(String ss) {
char[] s=ss.toCharArray();
int n=s.length;
for(int i=0;i<n;i++){
if(s[i]=='?'){
for(char ch='a';ch<='z';ch++){
if((i==0 || ch!=s[i-1]) && (i==n-1 || ch!=s[i+1])){
s[i]=ch;
break;
}
}
}
}
return String.valueOf(s);
}
}
2.提莫攻击
class Solution {
public int findPoisonedDuration(int[] timeSeries, int duration) {
int ret=0;
for(int i=1;i<timeSeries.length;i++){
int x=timeSeries[i]-timeSeries[i-1];
if(x>=duration){
ret+=duration;
}else{
ret+=x;
}
}
return ret+duration;
}
}
3.N字形变换
class Solution {
public String convert(String s, int numRows) {
if(numRows==1){
return s;
}
int n=s.length();
StringBuilder ret=new StringBuilder();
int d=2*numRows-2;
//处理第一行
for(int i=0;i<n;i+=d){
ret.append(s.charAt(i));
}
//处理中间行
for(int k=1;k<numRows-1;k++){
for(int i=k,j=d-i;i<n || j<n;i+=d,j+=d){
if(i<n){
ret.append(s.charAt(i));
}
if(j<n){
ret.append(s.charAt(j));
}
}
}
//处理最后一行
for(int i=numRows-1;i<n;i+=d){
ret.append(s.charAt(i));
}
return ret.toString();
}
}
4.外观数列
class Solution {
public String countAndSay(int n) {
String s="1";
for(int i=1;i<n;i++){
int len=s.length();
StringBuilder tem=new StringBuilder();
for(int left=0,right=0;right<len;){
while(right<len && s.charAt(left)==s.charAt(right)){
right++;
}
tem.append(Integer.toString(right-left));
tem.append(s.charAt(left));
left=right;
}
s=tem.toString();
}
return s;
}
}
5.数青蛙
class Solution {
public int minNumberOfFrogs(String c) {
char[] croakOfFrogs=c.toCharArray();
String s="croak";
int len=s.length();
int[] hash=new int[len];
Map<Character,Integer> index=new HashMap<>();
for(int i=0;i<len;i++){
index.put(s.charAt(i),i);
}
for(char ch:croakOfFrogs){
if(ch==s.charAt(0)){
if(hash[len-1]!=0){
hash[len-1]--;
}
hash[0]++;
}else{
int i=index.get(ch);
if(hash[i-1]!=0){
hash[i-1]--;
hash[i]++;
}else{
return -1;
}
}
}
for(int i=0;i<len-1;i++){
if(hash[i]!=0){
return -1;
}
}
return hash[len-1];
}
}
希望对大家有所帮助!!!