1466C. Canine poetry

C. Canine poetry:题目

题意:可以用任何小写英文字母替换其中的,使其没有回文子串
思路:如果两个相同就换,如果三个是回文也换,先看两个再看三个
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<int> a((int)4e5);
vector<int> b((int)4e5);
string str;
int main()
{
    int t;
    cin>>t;
    while (t--)
    {
        int res = 0;
        cin>>str;
        int len = str.length();
        for (int i=0;i<len;i++)
        {
            if (i>0)
            {
                if (str[i]==str[i-1]) 
                {
                    res++;
                    str[i] = 'A';
                }
                else 
                {
                    if ((i>1)&&(str[i]==str[i-2])) 
                    {
                        res++;
                        str[i] = 'A';
                    }
                }
            }
        }
        cout<<res<<endl;
    }
}
下面是Java实现的代码: ```java public abstract class Animal implements Comparable<Animal>, Cloneable { protected String name; protected int age; public Animal(String name, int age) { this.name = name; this.age = age; } public abstract void makeSound(); @Override public int compareTo(Animal o) { if (this.age < o.age) { return -1; } else if (this.age > o.age) { return 1; } else { return 0; } } @Override public Animal clone() throws CloneNotSupportedException { return (Animal) super.clone(); } } public abstract class Feline extends Animal { public Feline(String name, int age) { super(name, age); } } public class Giraffe extends Animal { public Giraffe(String name, int age) { super(name, age); } @Override public void makeSound() { System.out.println("Giraffe " + name + " is making sound."); } } public abstract class Canine extends Animal { public Canine(String name, int age) { super(name, age); } } public class Lion extends Feline { public Lion(String name, int age) { super(name, age); } @Override public void makeSound() { System.out.println("Lion " + name + " is making sound."); } } public class Tiger extends Feline { public Tiger(String name, int age) { super(name, age); } @Override public void makeSound() { System.out.println("Tiger " + name + " is making sound."); } } public class Cat extends Feline implements Petable { public Cat(String name, int age) { super(name, age); } @Override public void makeSound() { System.out.println("Cat " + name + " is making sound."); } @Override public void play() { System.out.println("Cat " + name + " is playing."); } } public class Dog extends Canine implements Petable { public Dog(String name, int age) { super(name, age); } @Override public void makeSound() { System.out.println("Dog " + name + " is making sound."); } @Override public void play() { System.out.println("Dog " + name + " is playing."); } } public class Wolf extends Canine { public Wolf(String name, int age) { super(name, age); } @Override public void makeSound() { System.out.println("Wolf " + name + " is making sound."); } } public interface Petable { void play(); } ``` 要测试深拷贝和浅拷贝,可以在Animal类中实现clone方法,然后在测试中分别进行深拷贝和浅拷贝的测试: ```java public class Main { public static void main(String[] args) throws CloneNotSupportedException { Animal animal1 = new Cat("Tom", 2); Animal animal2 = animal1.clone(); System.out.println(animal1 == animal2); // false System.out.println(animal1.getClass() == animal2.getClass()); // true System.out.println(animal1.equals(animal2)); // true Cat cat1 = new Cat("Kitty", 1); Cat cat2 = cat1.clone(); System.out.println(cat1 == cat2); // false System.out.println(cat1.getClass() == cat2.getClass()); // true System.out.println(cat1.equals(cat2)); // true System.out.println(cat1.name == cat2.name); // true,因为String是不可变对象,浅拷贝后两个对象的name引用指向同一个String对象 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值